Опции и примеры
Для простоты понимания, операции синхронизации привожу сперва локально.
Быстрый способ синхронизировать два каталога, это использовать опцию -a:
rsync -a foobar_src/ foobar_dst/
В данном случае файлы и директории из источника скопируются в приемник, при этом, если там были файлы, то совпавшие по имени будут перезаписаны, а остальные не тронуты.
Опция -a задает архивный режим работы утилиты, и является эквивалентом набора опций:
-r, --recursive
— рекурсивный режим;
-l, --links
— пересоздание symlinks, это значит, что символические ссылки будут так же переноситься;
-p, --perms
— перенос прав;
-t, --times
— передача времени модификации и его обновление на удаленной системе. Этот ключ должен быть установлен для точной синхронизации;
-g, --group
— установить группу конечного файла таким же, как и у исходного;
-o, --owner
— установить владельца конечного файла таким же, как и у исходного;
-D, - same as --devices --specials
— установить тип файла устройства и файла специального типа таким же, как у исходного.
В итоге получаем копию директории источника. Кстати, это можно использовать при переносе ОС на другой винчестер, подправив /etc/fstab, установив/переустановив grub на новом винте — получаем рабочую систему, но это уже другая тема.
Для вывода информации о работе утилиты, существует опция –v, –verbose. Чем больше опций -v, тем боле информативным будет вывод утилиты. Максимальная информативность достигается при четырех опциях -v, –verbose.
Если у нас содержится в директории источника актуальная информация, то чтобы не засорять приемник информацией, которая в процессе работы была удалена или перемещена в источнике, нужно старые файлы и директории удалить. Для этого есть несколько опций удаления, каждая из которых предоставляет свой алгоритм удаления. Их аж шесть!
--del
— сокращенная форма --delete-during
;
--delete
— просто удалить посторонние файлы из приемника;
--delete-before
— приемник удаляет перед передачей;
--delete-during
— приемник удаляет в процессе передачи, но не перед;
--delete-delay
— отложенное удаление/найти файлы для удаления в процессе передачи, но удалить после передачи;
--delete-after
— приемник удаляет после передачи, но не перед ней;
--delete-excluded
— так же удалить исключенные файлы в приемнике, для этого задается шаблон (--exclude=PATTERN
).