2. rsync

Что такое 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/

Войдите, чтобы сохранить ваш прогресс обучения

Вход

Упражнения

Хотя для этой темы нет специальных лабораторных работ, мы рекомендуем изучить комплексный Путь обучения Linux, чтобы попрактиковаться в связанных навыках и концепциях Linux.

Тест

Какая команда, известная своим алгоритмом дельта-передачи, особенно полезна для создания эффективных резервных копий данных? Пожалуйста, ответьте на английском языке, обращая внимание на регистр.