2.10.17. Створення та відновлення копії файлів сайту за допомогою rsync

rsync — утиліта для синхронізації файлів і каталогів між локальним ПК і віддаленим сервером. Дані передаються в зашифрованому вигляді. Передача виконується в один потік і при повторній синхронізації передаються тільки змінені дані, що забезпечує більш високу швидкість, ніж при копіюванні файлів по FTP, SFTP або SCP.

rsync доступний для операційних систем Linux і macOS. У Windows його можна використовувати через WSL (Підсистема Linux для Windows).

Для створення копії вмісту каталогу сайту на локальному ПК потрібно на цьому ПК в консолі виконати наступну команду:

rsync -avzh --delete --progress example@example.ftp.tools:/шлях/до/кореневого/каталогу/сайту/ ~/локальний/каталог/

В команді:

  • Ключі:
    • -a — режим архівування, рекурсивне копіювання даних зі збереженням симлінк, прав доступу та іншої інформації.
    • -v — виведення докладної інформації в процесі роботи.
    • -z — стиснення переданих даних.
    • -h — висновок інформації в зручному для людини вигляді.
    • –delete — видалення в каталозі призначення файлів, яких немає в джерелі.
    • –progress — висновок прогресу передачі кожного файлу.
  • example@example.ftp.tools - логін і хост з даних для підключення по SSH.
  • Шляхи:
    • /Шлях/до/кореневого/каталогу/сайту/ — повний шлях до каталогу, вміст якого потрібно зберегти на локальному ПК. Увага! Закриває слеш в кінці шляху впливає на розміщення даних в цільовому каталозі — якщо слеш вказано, вміст каталогу—джерела буде скопійовано безпосередньо у папку, якщо не вказано — вміст каталогу—джерела буде скопійовано в підкаталог з назвою каталогу—джерела.
    • ~/Локальний/каталог/ — каталог на локальному ПК, куди потрібно зберегти дані. Закриває слеш у цільового каталогу ролі не грає.

Після запуску команди потрібно ввести пароль доступу по SSH. При його введенні або вставці з буфера обміну символи не відображаються на екрані. Щоб не вводити пароль при кожному запуску команди, досить налаштувати SSH-аутентифікацію по ключам.

Перше виконання команди може зайняти тривалий час, оскільки по мережі будуть передаватися всі файли та каталоги сайту. Повторні запуски будуть виконуватися швидше, оскільки в цьому випадку вже будуть передаватися дані, що тільки змінилися.

Для відновлення сайту з копії на локальному ПК досить в команді поміняти місцями джерело і призначення:

rsync -avzh --delete ~/локальний/каталог/ example@example.ftp.tools:/шлях/до/кореневого/каталогу/сайту/
Зміст