插件窝 干货文章 如何备份Linux DHCP数据库

如何备份Linux DHCP数据库

DHCP dhcpd 备份 backup 552    来源:    2025-05-06

Linux DHCP 数据库备份方法

主要备份方法

1. 备份ISC DHCP服务器配置文件

对于ISC DHCP服务器(最常见),主要配置文件通常位于:

/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf (IPv6配置)

备份命令:

sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
sudo cp /etc/dhcp/dhcpd6.conf /etc/dhcp/dhcpd6.conf.bak  # 如果有IPv6配置

2. 备份租约文件

租约文件通常位于:

/var/lib/dhcp/dhcpd.leases
/var/lib/dhcp/dhcpd6.leases (IPv6租约)

备份命令:

sudo cp /var/lib/dhcp/dhcpd.leases /var/lib/dhcp/dhcpd.leases.bak
sudo cp /var/lib/dhcp/dhcpd6.leases /var/lib/dhcp/dhcpd6.leases.bak  # 如果有IPv6租约

3. 使用打包方式备份

sudo tar czvf dhcp_backup_$(date +%Y%m%d).tar.gz /etc/dhcp/ /var/lib/dhcp/

自动备份脚本

创建自动备份脚本(/usr/local/bin/backup_dhcp.sh):

#!/bin/bash
BACKUP_DIR="/backup/dhcp"
DATE=$(date +%Y%m%d)

mkdir -p $BACKUP_DIR
cp /etc/dhcp/dhcpd.conf $BACKUP_DIR/dhcpd.conf.$DATE
cp /var/lib/dhcp/dhcpd.leases $BACKUP_DIR/dhcpd.leases.$DATE
tar czf $BACKUP_DIR/dhcp_full_$DATE.tar.gz /etc/dhcp/ /var/lib/dhcp/

# 删除30天前的备份
find $BACKUP_DIR -type f -mtime +30 -delete

然后设置cron任务定期执行:

sudo chmod +x /usr/local/bin/backup_dhcp.sh
sudo crontab -e

添加以下行(例如每天凌晨2点备份):

0 2 * * * /usr/local/bin/backup_dhcp.sh

恢复方法

恢复配置文件

sudo cp /backup/dhcp/dhcpd.conf.bak /etc/dhcp/dhcpd.conf

恢复租约文件

sudo cp /backup/dhcp/dhcpd.leases.bak /var/lib/dhcp/dhcpd.leases

从打包文件恢复

sudo tar xzvf dhcp_backup_20230101.tar.gz -C /

注意事项

  1. 恢复后需要重启DHCP服务:
sudo systemctl restart isc-dhcp-server
  1. 对于大型网络,租约文件可能很大,考虑压缩备份

  2. 如果使用其他DHCP服务器(如dnsmasq),配置文件位置可能不同

  3. 定期验证备份的完整性