Архив заметок

Rsync. Бэкап FreeBSD

Просмотров: 5377Комментарии: 2
FreeBSD

отсюда и отсюда.

Ставим на обе машины софт:

# 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

Привет.

После установки на обе машины добавляем строку автозапуска в /etc/pf.conf:

поправь на rc.conf

Спасибо за статейку

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена.

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)