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