Утилита rsync#

Утилита rsync используется для локальной и удаленной синхронизации файлов/каталогов.

rsync по умолчанию использует алгоритм «быстрой проверки», с помощью которого ищет файлы с измененными размером или временем последнего изменения. Любые изменения в других сохраненных атрибутах вносятся непосредственно в целевой файл, когда быстрая проверка показывает, что данные файла не нуждаются в обновлении.

rsync копирует файлы либо на удаленный хост, либо с него, либо локально на текущем хосте; не поддерживает копирование файлов между двумя удаленными хостами.

Синтаксис rsync:

rsync <options> <SRC> <DEST>

Где:

  • <options> - опции;

  • <SRC> - источник;

  • <DEST> - назначение.

При использовании аргумента SRC и отсутствии DEST исходные файлы будут только перечислены, а не скопированы.

Часто используемые опции утилиты представлены в таблице ниже.

Опция

Описание

--verbose,  -v

Расширенная информация о работе утилиты

--archive,  -a

Архивирование - рекурсивное копирование и сохранение иерархии каталогов, символических ссылок, прав доступа, владельца и времени модификации

--backup,  -b

Резервное копирование, существующие файлы назначения переименовываются по мере передачи или удаления каждого файла

--hard-links,  -H

Поиск файлов с жесткими ссылками в исходном коде и связывание соответствующих файлов в целевом коде; без этой опции файлы с жесткими ссылками в исходном коде обрабатываются как отдельные файлы

--perms,  -p

Настройка разрешений для файлов назначения такими же, как у источников

--one-file-system,  -x

Работа в рамках границ одной файловой системы при повторном запуске; выполняется рекурсия rsync по иерархии каждого каталога, указанного пользователем, а также аналогичная рекурсия на принимающей стороне при удалении

--compress,  -z

Сжатие данных файла по мере их отправки на машину назначения, сокращение объема передаваемых данных

--human-readable, -h

Вывод чисел в человекочитаемом формате

--partial

Сохранение частично переданных файлов в случае прерывания передачи

--progress

Вывод информации о ходе передачи данных

Примеры использования#

  • Для синхронизации каталогов с копированием измененных файлов из path/to/source в path/to/destination используйте команду:

    rsync path/to/source path/to/destination
    
  • Для синхронизации каталогов с копированием измененных файлов из path/to/source в path/to/destination с использованием режима архивирования используйте команду:

    rsync --archive path/to/source path/to/destination
    
  • Для синхронизации каталогов с копированием измененных файлов из path/to/source в path/to/destination со сжатием данных по мере их отправки по назначению, отображением подробного и удобочитаемого хода выполнения и сохранением частично переданные файлов в случае их прерывания используйте команду:

    rsync --compress --verbose --human-readable --partial --progress path/to/source path/to/destination