В данной заметке я кратко расскажу о использовании rsync в Linux. Для подключения я буду использовать режим rsync по ssh, приведу список наиболее часто используемых параметров и в конце покажу примеры для rsync синхронизации файлов.
Если необходимо перенести файлы с одного на другой сервер в Linux, для меня самый удобный способ это использование rsync по SSH. По сравнению с другими протоколами, rsync объединяет в себе два основных преимущества. Использование rsync может значительно ускорить синхронизацию за счет передачи только изменившихся файлов. Ещё один плюс rsync — сжатие данных на лету. Нужно отметить, что сжатие может как ускорить, так и существенно замедлить синхронизацию.
Для начала приведу список основных опций rsync в Linux:
-a, сохранять права доступа и информация о владельцах, включает опции -rlptgoD; -r, копировать каталоги рекурсивно; -l, копировать символические ссылки, не обращаться к файлам; -p, сохранять прав доступа к файлам; -t, сохранять время модификации файлов; -g, -o, сохранять владельца и группы файла; -D, охранять файлы устройств и специальных файлов; -u, режим обновления, не синхронизировать файлы имеющие более позднюю дату модификации, чем в источнике; -v, отображать имена копируемых файлов; -q, не отображать сообщения об ошибках; -z, сжимать данные; -P, отображать прогресс копирования; -с, проверка файлов по контрольной сумме; --ignore-errors, игнорировать ошибки; --max-delete, максимальное число удаляемых за один раз файлов и каталогов; --files-from=FILE, указать список файлов и директорий для копирования; -e ssh, использование при копировании SSH; --bwlimit=KBPS, ограничение скорости передач данных.
Теперь приведу наиболее наиболее часто используемые rsync примеры синхронизации файлов.
Используем rsync по SSH для синхронизации двух директорий или файлов:
rsync -zavP /source root@1.1.1.1:/backup
Можно синхронизировать сразу два каталога или файла:
rsync -zavP /source /source2 root@1.1.1.1:/backup
Копировать файлы с удаленного сервера на локальный:
rsync -zavP root@1.1.1.1:/backup /source
Использовать rsync по SSH с нестандартным портом:
rsync -zavP '-e ssh -p 12345' /source root@1.1.1.1:/backup