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:/шлях/до/кореневого/каталогу/сайту/