Утилита rsync широко используется в ОС Linux для копирования файлов на удаленные хосты, а также синхронизации между локальными каталогами. Более того, большинство файлообменных сервисов в сети Интернет поддерживает протокол rsync для загрузки или скачивания файлов. Основное преимущество команды rsync при копировании файлов является то, что копируются только изменения, сделанные в файле, тем самым существенно уменьшается общее время копирования. Кроме того, утилита rsync позволяет сжимать данные в процессе передачи и осуществлять надежный контроль целостности данных. Например, для копирования домашнего каталога пользователей /home в каталог /backups, находящийся на удаленном сервере backup.linux.lab используется следующая команда:
rsync -avz /home backup.linux.lab:backups/
Здесь аргумент -а используется для архивирования данных, т.е. выполняется рекурсивное копирование всех подкаталогов вместе с их файлами с сохранением прав доступа, символьных ссылок, временных оттисков файлов, владельца и группы файлов. Аргумент -z используется для сжатия данных перед копированием. При копировании файлов на удаленный хост важно наличие или отсутствия символа «/» в конце названия копируемого каталога. В случае если символ «/» в конце копируемого каталога не указан, то на удаленном хосте будет создан аналогичный каталог со всем его содержимым. Если данный символ указан, то на удаленном хосте будут скопированы только файлы, содержащиеся в копируемом каталоге. Утилита rsync может работать в режиме «клиент-сервер», В данном случае на сервере функционирует демон rsyncd, который ссылается на конфигурационный файл /etc/rsyncd.conf. Файл /etc/rsyncd.conf содержит глобальные конфигурационные параметры и секции с описанием модулей, каждая из которых представляет собой дерево каталогов для экспорта или импорта.
#Название модуля (используется при подключении в командной строке) [upload] # Каталог, в который будет производиться загрузка файлов path = /var/rsync/pub # Режим доступа к модулю (чтение или чтение+запись) read only = false # идентификаторы пользователя и группы, которые будут использоваться при загрузке файлов uid = root gid = root # список хостов, которым разрешено загружать файлы в данный модуль hosts allow = main.linux.lab
Листинг 3.12. Конфигурация модуля [upload] B файле /etc/rsyncd.conf
В данной конфигурации все операции выполняются в каталоге /var/rsync/pub, а доступ разрешен только хосту main.linux.lab. С точки зрения пользователя или клиента можно осуществлять загрузку файлов на сервер, указывая в качестве пункта назначения выражение вида <хост>::<модуль>, которое соответствует описанному выше модулю.
Информации по системе резервного копирования Amanda доступна по адресу http://www.amanda.org/