Если имеется доступ по ssh к серверу, это наиболее простой способ для осуществления синхронизации.
Rsync по ssh – это частный случай использования, общий вид команды выглядит так:
rsync [ОПЦИИ] [ПОЛЬЗОВАТЕЛЬ@]СЕРВЕР:ИСТОЧНИК... [ПОЛУЧАТЕЛЬ]
копирование файлов с удаленной системы на локальную
rsync [ОПЦИИ] ИСТОЧНИК 1 [ИСТОЧНИК N] [ПОЛЬЗОВАТЕЛЬ@]СЕРВЕР:ПОЛУЧАТЕЛЬ
копирование файлов с локальной машины на удаленную
Обязательным параметром является “ИСТОЧНИК”, их может быть несколько.
Основные ключи:
-a, режим архивирования, включает ключи -rlptgoD;
-r, каталоги копируются рекурсивно;
-l, копировать символические ссылки «как есть», то есть rsync не будет следовать по ним, обращаясь к файлам;
-p, сохранение прав доступа к файлам;
-t, сохранение времени модификации файлов;
-g, -o, сохранение владельца и группы файла;
-D, сохранение файлов устройств и специальных файлов;
-u, режим обновления, пропускаются файлы на получателе, имеющие более позднюю дату модификации, чем в источнике;
-v, выводит имена копируемых файлов;
-q, не выводит сообщения об ошибках;
-z, включение режим сжатия;
-P, отображение прогресса при копировании;
-с, проверка файлов по контрольной сумме, а по размеру и дате модификации. Дополнительная нагрузка на процессор, сильно увеличивает время синхронизации;
–ignore-errors, продолжение копирования и удаления даже после появления ошибок;
–max-delete, максимальное число удаляемых за один раз файлов и каталогов;
–files-from=FILE, задается список файлов и директорий для копирования в файле;
-e ssh, использование при копировании ssh;
–bwlimit=KBPS, ограничение скорости копирования.
Примеры:
# rsync -zavP /backup/file1/ /backup/file2/ user@192.168.0.1:/backup
Скопируется на сервер 192.168.0.1 содержимое папок /backup/file1/ /backup/file2/ в папку backup
# rsync -zavP /backup/file1 /backup/file2 user@192.168.0.1:/backup
В этом примере уже скопируются сами папки
Как ограничить скорость передачи файлов? Нужно поставить опцию –bwlimit :
# rsync -zavP --bwlimit=100 /backup/file1/ user@192.168.0.1:/backup
Как синхронизировать файлы с проверкой по контрольной сумме?
# rsync -сzavP /backup/file1/ user@192.168.0.1:/backup
Как скопировать файлы с удаленной машины на локальную?
# rsync -zavP user@192.168.0.1:/backup /backup/file1/
Как исключить файл или директорию при копировании?
# rsync -azVP --exclude /temp/ /home/data/ user@192.168.0.1:/backup
Исключаем директорию /temp
# rsync -zavP '-e ssh -p 12345' /var/lib/ root@192.168.0.1:/backup
Как использовать нестандартный порт ssh при копировании rsync