Ниже представлен перевод руководства (http://howtoforge.org/automated-backups-using-dhcpd-on-ubuntu) по настройке резервного копирования удаленных машин, с привязкой к обращению клиента к dhcpd серверу. Примеры настройки справедливы для Ubuntu Linux, для других дистрибутивов могут потребоваться незначительные очевидные изменения.++ Конфигурирование сервера
Настройка dhcp3. В файл /etc/dhcp3/dhcps.conf добавляем:
on commit {
execute (
"/etc/dhcp3/startbackup.sh",
"start",
binary-to-ascii(10,8,".",leased-address)
);
}
Создаем скрипт /etc/dhcp3/startbackup.sh, указанный в файле настройки dhcp.
#!/bin/bash
case "$1" in
start)
sudo -u backup /etc/dhcp3/rsync.sh $2
;;
*)
;;
esac
exit 0
Создаем скрипт /etc/dhcp3/rsync.sh:
#!/bin/bash
nohup rsync -azuvb backup@$1:/home /backup/$1 &
Создаем директорию для хранения бэкапов:
sudo mkdir /backup
Создаем пользователя "backup"
sudo useradd backup
sudo chown backup:backup /backup
Генерируем ssh-ключи:
ssh-keygen -t rsa
Копируем ключи на все машины, с которых будет производиться резервное копирование ("[host]" заменяем на имя машины):
ssh-copy-id -i ~/.ssh/id_rsa backup@[host]
Запускаем sudo visudo и добавляем строку, позволяющую организовать запуск /etc/dhcp3/startbackup.sh из dhcpd от имени пользователя backup
dhcpd ALL=(backup)NOPASSWD: /etc/dhcp3/startbackup.sh, /etc/dhcp3/rsync.sh
Настройка AppArmor
В файле /etc/apparmor.d/usr.sbin.dhcpd3 добавляем "/etc/dhcp3/startbackup.sh Uxr,", заменив
/etc/dhcp3/ r,
/etc/dhcp3/** r,
/etc/dhcpd.conf r,
/etc/dhcpd_ldap.conf r,
на
/etc/dhcp3/ r,
/etc/dhcp3/** r,
/etc/dhcp3/startbackup.sh Uxr,
/etc/dhcpd.conf r,
/etc/dhcpd_ldap.conf r,
Перезапускаем сервисы apparmor и dhcp3-server
sudo /etc/init.d/apparmor restart
sudo /etc/init.d/dhcp3-server restart
++ Настройка клиента
Создаем пользователя "backup":
sudo useradd backup
sudo usermod -G root
Тестируем настройки
sudo dhclient рабочий_сетевой_интерфейс
После чего, на сервере должна быть создана резервная копия данных с машины клиента
URL: http://netsago.org/ru/notes/2009/15/
Обсуждается: http://www.opennet.dev/tips/info/2203.shtml