自动备份使用dhcpd在Ubuntu上

在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]

接口是你想要更新的接口

您现在应该在服务器上备份客户端。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏