在Ubuntu上使用dhcpd进行自动备份
本教程将介绍如何使用Ubuntu通过dhcp设置Linux主机的自动备份。
我将使用以下软件:
- dhcp3
- 自定义脚本
1在服务器上
1.1配置dhcp3
在/etc/dhcp3/dhcps.conf中
添加:
on commit { execute ( "/etc/dhcp3/startbackup.sh", "start", binary-to-ascii(10,8,".",leased-address) ); }
1.2创建startbackup.sh
sudo vi /etc/dhcp3/startbackup.sh
#!/bin/bash case "$1" in start) sudo -u backup /etc/dhcp3/rsync.sh $2 ;; *) ;; esac exit 0
1.3创建rsync.sh
sudo vi /etc/dhcp3/rsync.sh
#!/bin/bash nohup rsync -azuvb backup@$1:/home /backup/$1 &
并添加/备份
文件夹:
sudo mkdir /backup
1.4添加用户备份
sudo useradd backup
sudo chown backup:backup /backup
创建私人/公共ssh密钥:
ssh-keygen -t rsa
将公钥复制到要备份的所有主机:
ssh-copy-id -i ~/.ssh/id_rsa backup@[host]
将[主机]替换为您的主机名或IP地址。
1.5配置sudo
sudo visudo
并添加如下所示的行:
dhcpd ALL=(backup)NOPASSWD: /etc/dhcp3/startbackup.sh, /etc/dhcp3/rsync.sh
1.6配置AppArmor
sudo vi /etc/apparmor.d/usr.sbin.dhcpd3
更改部分看起来像:
/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,
1.7重新启动服务
sudo /etc/init.d/apparmor restart
sudo /etc/init.d/dhcp3-server restart
客户端
2.1添加用户备份
sudo useradd backup
sudo usermod -G root
2.2测试设置
sudo dhclient [interface]
接口是你想要更新的接口
您现在应该在服务器上备份客户端。