Резервное копирование · 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
Get new posts in your inbox
No spam. Unsubscribe anytime.