rsync SSH синхронизация файлов в Linux

Дата: 20.01.2019Метки:

В данной заметке я кратко расскажу о использовании 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