2.11.13. Створення та відновлення копії файлів сайту за допомогою 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:/шлях/до/кореневого/каталогу/сайту/
Зміст

    (1)