1. Настройка rsync-сервера
Для настройки rsync-сервера нужно установить пакет rsync:
# apt-get install rsyncЗатем, прописать опции командной строки, с которыми будет запускаться rsync-сервер в файл /etc/default/rsync. В данном файле можно задать следующие опции:
- RSYNC_ENABLE - настройка автозапуска сервера при загрузке операционной системы. Переменная принимает следующие значения:
- false - запретить запуск сервера rsync,
- true - запускать самостоятельный сервер rsync,
- inetd - запускать сервер rsync при необходимости из супер-сервера inetd.
- RSYNC_CONFIG_FILE - задаёт место расположения файла конфигурации. По умолчанию этим файлом является /etc/rsyncd.conf
- RSYNC_OPTS - задаёт дополнительные опции командной строки для запуска rsync-сервера.
Например, можно задать опцию "--address=123.45.67.89" (по умолчанию - все локальные адреса), чтобы указать на каком адресе следует принимать соединения и/или опцию "--port=8730" (по умолчанию - 873), чтобы указать на каком порту следует принимать соединения. - RSYNC_NICE - задаёт приоритет процесса в планировщике задач.
uid = rsyncd gid = mirror max connections = 50 read only = yes list = yes syslog facility = local5 dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz *.rar *.mp3 use chroot = yes outgoing chmod = Fu=rw,g=rw,o=,Du=rwx,g=rx,o= [debian] path = /home/mirror/debian/ comment = Debian Lenny i386 and amd64 repository [debian-cd] path = /home/mirror/debian-cd/ comment = Debian Lenny i386 and amd64 DVD imagesОписание указанных опций:
- uid - идентификатор пользователя, от имени которого будет работать rsync-сервер,
- gid - идентификатор группы, от имени которой будет работать rsync-сервер,
- max connections - максимальное количество одновременных подключений к rsync-серверу. Все подключения сверх указанного лимита будут отброшены.
- read only - разрешать клиентам только чтение,
- list - разрешать клиентам получать список файлов. Если запретить просмотр списка файлов, то клиенты смогут получить файл только зная его точное имя,
- syslog facility - уровень отладочных сообщений для демона syslog,
- dont compress - указывает шаблоны имён файлов, содержимое которых не нужно сжимать при передаче. Здесь полезно указать уже сжатые файлы, повторное сжатие которых не даст никакой выгоды, а только потратит ресурсы системы - это большинство аудио-, видео-файлов, большинство графических файлов, архивы.
- use chroot - указывает, должен ли rsync сервер в целях обеспечения большей безопасности, менять корневой каталог на указанный в path.
- outgoing chmod - задаёт права доступа к отдаваемым файлам. Поскольку протокол rsync позволяет вместе с содержимым файлов передавать права доступа к ним и идентификаторы владельца и группы, можно задать особые права доступа, которые будут заменять реальные права доступа к данному файлу или каталогу при его передаче по сети.
После изменения опций, если ваш rsync-сервер будет работать в самостоятельном режиме, нужно перезапустить его:
# /etc/init.d/rsync restart2. Использование rsync-клиента
Для установки rsync-клиента нужно установить пакет rsync:
# apt-get install rsyncЧтобы начать копирование с rsync-сервера, можно воспользоваться подобной командой:
$ rsync -avv rsync://anonymous@mirror.yandex.ru:873/debian/ debian/Или проще:
$ rsync -avv rsync://mirror.yandex.ru/debian/ debian/rsync-клиент может работать не только с rsync-сервером, он может работать и через ssh-подключение с теми машинами, где установлен rsync:
$ rsync -avv user@computer:/home/mirror/debian/ debian/При этом он по сравнению с командой scp будет иметь следующие преимущества:
- не будет копировать те файлы, временная отметка об изменении которых совпадает с временной меткой об изменении локальной копии файла,
- умеет докачивать недокачанные фрагменты файла,
- при всём при этом умеет проверять идентичность файлов с помощью хэш-функции, при необходимости докачивая отдельные блоки файла, результат вычисления хэш-функции для которых отличается.
$ rsync -avv /home/mirror/debian/ debian/По сравнению с командой cp будет иметь следующие преимущества:
- не будет копировать те файлы, временная отметка об изменении которых совпадает с временной меткой об изменении копии файла,
- умеет копировать ссылки, устройства,
- копирует права доступа к файлам,
- при запуске от имени пользователя root будет копировать принадлежность файлов пользователям и группам.
При синхронизации на Samba-ресурс или файловую систему FAT может случиться, что копируются не только изменённые файлы, а половина всех файлов плюс изменившиеся. Это связано с тем, что в файловой системе FAT исторически под хранение секунд отводилось лишь 5 бит. В 5 битах можно хранить не более 32 разных значений, поэтому секунды хранятся с округлением до чётного значения. Из-за этого rsync может решить, что файл изменился, хотя разница между отметками времени двух файлов составляет 1 секунду. Чтобы rsync не обращал внимание на разницу в одну секунду, следует указать ему дополнительную опцию --modify-window=1:
$ rsync -avv --modify-window=1 /home/fileserv1/ /home/fileserv2/За более подробной информацией по программе rsync можно обратиться к системным страницам руководства rsync(1) и rsync.dconf(5) или к их переводам на русский язык rsync(1) и rsyncd.conf(5).
1 комментарий:
Отличная статья
Отправить комментарий