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

Rsync. Бэкап FreeBSD

Просмотров: 5628Комментарии: 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

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

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