2.10.17. Создание и восстановление копии файлов сайта с помощью rsync

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

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

Для создания копии содержимого каталога сайта на локальном ПК нужно на этом ПК в консоли выполнить следующую команду:

rsync -avzg --delete --progress example@example.ftp.tools:/путь/к/корневому/каталогу/сайта/ ~/локальный/каталог/

В команде:

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

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

Для восстановления сайта из копии на локальном ПК достаточно в команде поменять местами источник и назначение:

rsync -avzg --delete ~/локальный/каталог/ example@example.ftp.tools:/путь/к/корневому/каталогу/сайта/
  • hosting/ssh/rsync.txt
  • Последнее изменение: 2020/08/27 11:34
  • karlov