Что такое rsync?
Еще одним важным инструментом для копирования данных между разными хостами является rsync, что означает удаленная синхронизация (remote synchronization). Хотя он похож на scp, у rsync есть ключевое отличие, которое делает его невероятно эффективным. Он использует алгоритм дельта-передачи, который интеллектуально проверяет наличие существующих данных в месте назначения и передает только те части файлов, которые изменились.
Например, если передача большого файла прервалась, rsync может возобновить копирование, передавая только оставшиеся части файла, а не начиная все сначала. Это делает его надежным выбором для нестабильных сетевых соединений.
Ключевые особенности rsync
Эффективность rsync обусловлена его умными оптимизациями. Он проверяет целостность файлов с помощью контрольных сумм, чтобы гарантировать, что скопированные данные не будут повреждены во время передачи. Эти функции обеспечивают значительную гибкость, делая rsync идеальным инструментом для:
- Синхронизации каталогов (как удаленных, так и локальных)
- Создания инкрементных резервных копий данных
- Эффективной обработки больших объемов передаваемых данных
Общие опции rsync
Вы можете изменять поведение команды rsync с помощью нескольких опций. Некоторые из наиболее часто используемых включают:
-v: Подробный вывод, показывающий, какие файлы передаются.-r: Рекурсивный режим, необходимый для копирования целых каталогов.-h: Вывод в удобочитаемом формате, отображающий числа в более понятном формате (например, КБ, МБ).-z: Сжимает данные файлов во время передачи, что отлично подходит для медленных соединений.-a: Режим архива, удобный ярлык, объединяющий несколько опций (-rlptgoD) для сохранения разрешений, владельца и временных меток.
Примеры использования rsync
Синхронизация файлов на одном хосте
Вы можете использовать rsync для синхронизации двух каталогов на вашей локальной машине. Это полезно для создания локальных резервных копий.
rsync -avh /my/local/directory/one/ /my/local/directory/two/
Синхронизация файлов с удаленного хоста на локальный хост
Чтобы получить файлы с удаленного сервера на вашу локальную машину, сначала укажите удаленный источник.
rsync -avh username@remotehost.com:/remote/directory/ /local/directory/
Синхронизация файлов с локального хоста на удаленный хост
Чтобы отправить файлы с вашей локальной машины на удаленный сервер, сначала укажите локальный источник.
rsync -avh /local/directory/ username@remotehost.com:/remote/directory/