отсюда и отсюда.
Ставим на обе машины софт:
# portmaster net/rsync
После установки на обе машины добавляем строку автозапуска в /etc/rc.conf:
rsyncd_enable="YES"
И, если есть фаервол, например PF, добавим правило в /etc/pf.conf:
pass in on $ext_if proto tcp from any to $ext_if port 873 flags S/SA synproxy state
Перезапустим:
# pfctl -f /etc/pf.conf
Это, что касалось первоначальной настройки на обеих железках.
Настройка сервера
Слегка рихтуем конфиг /usr/local/etc/rsyncd.conf
pid file = /var/run/rsyncd.pid syslog facility = local5 log file = /var/log/rsyncd.log transfer logging = true
Так как бэкапить с сервера ничего не будем, секции можно не трогать.
Создаем лог файлик и меняем полномочия доступа:
# touch /var/log/rsyncd.log # chmod 0600 /var/log/rsyncd.log # chown root:wheel /var/log/rsyncd.log
Создаем файл с паролем (только пароль) для доступа на машину клиент:
# cat > /usr/local/etc/rsyncd.scrt ваш_пароль # chown root:wheel /usr/local/etc/rsyncd.scrt # chmod 0600 /usr/local/etc/rsyncd.scrt
На этом настройка сервера закончена. Запускаем его:
# /usr/local/etc/rc.d/rsyncd start
Настройка клиента
На клиенте настройка конфигурационного файла отличается. Рихтуем конфиг /usr/local/etc/rsyncd.conf:
pid file = /var/run/rsyncd.pid syslog facility = local5 log file = /var/log/rsyncd.log transfer logging = true [all] uid = root path = / read only = yes list = yes auth users = username secrets file = /usr/local/etc/rsyncd.scrt comment = whole data
Добавлена секция all. Мне необходим бэкап полностью всего содержимого.
Создаем файл с паролем, теперь в нем надо добавить и имя /usr/local/etc/rsyncd.scrt:
username:password
Стартуем клиента:
# /usr/local/etc/rc.d/rsyncd start
Пробуем достучаться с сервера на клиентский комп:
# rsync --password-file=/usr/local/etc/rsyncd.scrt username@client_server_name::all drwxr-xr-x 1,024 2013/12/02 00:11:46 . -rw-r--r-- 1,014 2012/12/04 13:34:45 .cshrc -rw-r--r-- 256 2012/12/04 13:34:45 .profile -r-------- 33,554,432 2013/11/02 07:33:28 .sujournal -r--r--r-- 6,203 2012/12/04 13:34:45 COPYRIGHT -rw------- 4,096 2013/12/02 00:11:46 entropy lrwxr-xr-x 8 2013/11/02 11:01:56 home lrwxr-xr-x 11 2013/12/01 23:44:03 sys drwxrwxr-x 512 2013/11/02 07:33:27 .snap drwxr-xr-x 1,024 2013/12/01 23:44:18 bin drwxr-xr-x 1,024 2013/12/02 00:11:39 boot dr-xr-xr-x 512 2013/12/02 07:12:15 dev drwxr-xr-x 2,048 2013/12/02 17:55:34 etc drwxr-xr-x 1,536 2013/12/01 23:44:53 lib drwxr-xr-x 512 2013/12/01 23:45:59 libexec drwxr-xr-x 512 2012/12/04 13:32:59 media drwxr-xr-x 512 2012/12/04 13:32:59 mnt dr-xr-xr-x 512 2012/12/04 13:32:59 proc drwxr-xr-x 2,560 2013/12/01 23:44:50 rescue drwxr-xr-x 512 2013/11/05 21:40:30 root drwxr-xr-x 2,560 2013/12/01 23:45:43 sbin drwxrwxrwt 3,072 2013/12/03 19:48:48 tmp drwxr-xr-x 512 2013/11/02 11:01:56 usr drwxr-xr-x 512 2013/12/02 07:12:18 var
Отлично. Все работает. Если не работает, смотрите лог файл.
Запускаем бэкап с сервера:
# rsync -urlogt --delete-after --password-file=/usr/local/etc/rsyncd.scrt username@client_server_name::all /storage/backup
Разберем ключи команды:
[div(message idea" src="-u Обновление, пропускает файлы которые не изменились-r Рекурсивный режим
-l Пересоздание символических ссылок, символические ссылки тоже будут переноситься
-o Сохранять при копировании имя владельца файла
-g Сохранять при копировании группу владельца файла
-t Передача времени последнего изменения файла
–delete-after Удалять файлы не найденные на удаленном сервере
–password-file=… Путь к файлу с паролем
username@client_server_name::all – Имя_пользователя@сервер_откуда_бэкапить::имя_ресурса_на_удаленном_сервере
/storage/backup – путь куда ложится бэкап[/div]
Запуск по расписанию
Собственно каждый раз вручную запускать копирование не имеет смысла, можно добавить задачу в планировщик cron.
Для начала создадим скрипт для запуска rsync для планировщика.
# cat rsync.sh #!/bin/sh /usr/local/bin/rsync -urlogtv --stats --delete-after --password-file=/usr/local/etc/rsyncd.scrt username@client_server_name::all /storage/backup
Сделаем его исполняемым:
# chmod +x rsync.sh
Создаем или правим существующий cron:
# crontab -e
Добавляем строку:
0 2 * * * /usr/home/user/rsync.sh 2>&1 | mail -s "rsync script" root
Пользователя можно не указыввать, т.к. кронтаб создается от root.
Запуск будет производиться в 2 часа ночи ежедневно и отправляет отчет на почту root. Отправка на почту, это дополнение.
Посмотреть, что есть в cron:
# crontab -l
На память
[img(center)]https://helpdesk.yourshift.ru/uploads/cron.png" alt="">
Комментариев: 2 RSS
1Timur18-06-2014 18:52
Привет.
поправь на rc.conf
Спасибо за статейку
2Vladimir19-06-2014 16:16
Спасибо, поправил.
Вы можете войти под своим логином или зарегистрироваться на сайте.