Rsync — мощный инструмент облегчающий рутинную операцию создания резервных копий либо синхронизацию файлов и папок.
Важно отметить, что передача файлов выполняется в один поток, в отличие от других подобных программ, создающих отдельный поток для передачи каждого файла. Данная опция увеличивает скорость передачи и уменьшает задержки при передачи небольших файлов.
Синтаксис rsync выглядит следующим образом
В качестве источника и приемника может выступать удаленная или локальная директория.
-v — Выводить подробную информацию о процессе копирования;
-q — Минимум информации;
-c — Проверка контрольных сумм для файлов;
-a — Режим архивирования, когда сохраняются все атрибуты оригинальных файлов;
-R — Относительные пути;
-b — Создание резервной копии;
-u — Не перезаписывать более новые файлы;
-l — Копировать символьные ссылки;
-L — Копировать содержимое ссылок;
-H — Копировать жесткие ссылки;
-p — Сохранять права для файлов;
-g — Сохранять группу;
-t — Сохранять время модификации;
-x — Работать только в этой файловой системе;
-e — Использовать другой транспорт, например, ssh;
-z — Сжимать файлы перед передачей;
—delete — Удалять файлы которых нет в источнике;
—exclude — Исключить файлы по шаблону;
—recursive — Перебирать директории рекурсивно;
—no-recursive — Отключить рекурсию;
—progress — Выводить прогресс передачи файла;
—stat — Показать статистику передачи;
—version — Версия утилиты.
Пример синхронизации rsync
Рассмотрим пример синхронизации локальных файлов и папок
Данная команда копирует файл с именем file в папку /backups/
Если добавить опцию —progress вы сможете увидеть прогресс копирование и сколько времени осталось до завершения операции копирования.
Синхронизация папок выполняется так же легко как и копирование файлы, вместо имени файла указываем путь до папки которую нужно синхронизировать.
Синхронизация на удаленных сервер выполняется по типу локальной, но в качестве приемника мы указываем имя пользователя, сервер и директорию в которую нужно произвести синхронизацию.
Обратная синхронизация файлов.
Синхронизация не всех файлов и папок
Опции include и exclude позволяют указать какие файлы нужно синхронизировать, а какие исключить. Опции работают не только с файлами но и с директориями. В примере выше указано, как скопировать только те файлы которые начинаются на букву G.
Как вы могли заметить, утилиты очень простая в использовании но в тоже время предоставляет широкий спектр возможностей при копировании и синхронизации файлов.