Резервное копирование · 2 min read · Feb 08, 2026

Автоматизированные резервные копии с rdiff-backup - Страница 2

Шаг 3: Отредактируйте открытый ключ на server1.example.com

Войдите как root на server1.example.com и посмотрите на /root/.ssh/authorized_keys. Он должен выглядеть примерно так:

| ssh-rsa AAAAB3Nza[...]W1go9M= rdiff-backup@backup |

Теперь добавьте следующую строку в начало /root/.ssh/authorized_keys:

command=”rdiff-backup –server –restrict-read-only /“,from=”backup.example.com”,no-port-forwarding,no-X11-forwarding,no-pty

Она должна быть в одной строке(!) с ключом, разделенная только пробелом:

| command="rdiff-backup --server --restrict-read-only /",from="backup.example.com",no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAAB3Nza[...]W1go9M= rdiff-backup@backup |

Это запустит команду rdiff-backup –server –restrict-read-only /*, когда пользователь rdiff-backup с backup.example.com подключается к server1.example.com по SSH. –restrict-read-only / гарантирует, что rdiff-backup имеет только доступ для чтения на server1.example.com. Это зависит от вашей версии rdiff-backup, будет ли это работать. Если это не работает для вас, вы можете опустить –restrict-read-only /*, чтобы это выглядело так:

command=”rdiff-backup –server”,from=”backup.example.com”,no-port-forwarding,no-X11-forwarding,no-pty

В from=”backup.example.com” вы должны использовать имя хоста, которое возвращает обратный поиск IP-адреса backup.example.com. Например, если IP-адрес backup.example.com равен 1.2.3.4, и **

dig -x 1.2.3.4

возвращает

| rdiff-backup@backup:~$ dig -x 1.2.3.4 ; <> DiG 9.2.4 <> -x 1.2.3.4 ;; глобальные параметры: printcmd ;; Получен ответ: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38020 ;; флаги: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; СЕКЦИЯ ВОПРОСА: ;4.3.2.1.in-addr.arpa. IN PTR ;; СЕКЦИЯ ОТВЕТА: 4.3.2.1.in-addr.arpa. 43200 IN PTR server3245.somehoster.com. ;; Время запроса: 118 мс ;; СЕРВЕР: 145.253.2.75#53(145.253.2.75) ;; КОГДА: Чт Окт 13 14:56:03 2005 ;; РАЗМЕР СООБЩЕНИЯ получен: 83 rdiff-backup@backup:~$ |

то вы должны использовать server3245.somehoster.com:

command=”rdiff-backup –server –restrict-read-only /“,from=”server3245.somehoster.com”,no-port-forwarding,no-X11-forwarding,no-pty

Вы также можете использовать IP-адрес backup.example.com:

command=”rdiff-backup –server –restrict-read-only /“,from=”1.2.3.4”,no-port-forwarding,no-X11-forwarding,no-pty

Далее выполните

chmod -R go-rwx /root/.ssh

Затем посмотрите на /etc/ssh/sshd_config. Он должен содержать строки

| RSAAuthentication yes PubkeyAuthentication yes |

Перезапустите ssh, если вам пришлось изменить /etc/ssh/sshd_config:

/etc/init.d/ssh restart

Шаг 4: Протестируйте rdiff-backup на backup.example.com

Вернувшись на backup.example.com, снова как пользователь rdiff-backup, мы тестируем резервное копирование:

cd /backup
rdiff-backup server1_backup::/boot boot

Во второй команде вы видите строку server1_backup. Это строка, которую мы использовали в /backup/.ssh/config после host. С этой второй командой пользователь rdiff-backup подключится к server1.example.com как пользователь root и сохранит директорию /boot с server1.example.com в директорию /backup/boot на backup.example.com. Если вы видите, что это работает и вам не нужно вводить пароль, то - поздравляем! Вы это сделали!

Теперь осталось только создать задачу cron. Все еще как пользователь rdiff-backup, выполните

crontab -e

и создайте задачу cron, как эта:

40 2 /usr/bin/rdiff-backup –exclude /tmp –exclude /mnt –exclude /proc –exclude /dev –exclude /cdrom –exclude /floppy server1_backup::/ /backup/server1*

Это запускает резервное копирование каждую ночь в 2:40, сохраняя директорию / со всеми поддиректориями (исключая /tmp, /mnt, /proc, /dev, /cdrom, /floppy) с server1.example.com в /backup/server1 на backup.example.com.

(Примечание (немного не по теме): на Debian Sarge crontab -e автоматически откроет редактор nano. Если вы привыкли работать с редактором vi (как я), выполните следующие команды:

rm -f /etc/alternatives/editor
ln -s /usr/bin/vi /etc/alternatives/editor

После этого выполните crontab -e, и vi откроется.)

Чтобы узнать больше команд rdiff-backup (особенно как восстановить резервную копию), выполните

man rdiff-backup

и посмотрите на http://www.nongnu.org/rdiff-backup/examples.html.

Ссылки

Домашняя страница rdiff-backup: http://www.nongnu.org/rdiff-backup/index.html

Примеры rdiff-backup: http://www.nongnu.org/rdiff-backup/examples.html

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.