如何备份Debian Cobbler数据
小樊
36
2026-01-08 12:44:06
备份范围与准备
- 建议备份的范围包括:Cobbler 配置、数据库/配置快照、引导文件、镜像与仓库、Kickstart 文件、日志以及(若由 Cobbler 托管)DHCP 模板。关键目录与文件如下:
- 配置:/etc/cobbler/(含 settings、modules.conf、dhcp.template、dnsmasq.template、tftpd.template、iso/ 等)
- 数据与镜像:/var/lib/cobbler/(config/、kickstarts/、loaders/ 等)、/var/www/cobbler/(ks_mirror/、images/、repo_mirror/)
- 日志:/var/log/cobbler/
- 操作前准备:
- 建议在维护窗口执行,先停止相关服务以避免写入冲突:sudo systemctl stop cobblerd httpd tftp xinetd(或按实际部署的服务名调整)。
- 备份时保持一致性:先停止服务,再打包/同步;恢复后再启动服务。
- 记录关键参数:如 server、next_server、网络网段、DHCP 范围、镜像源等,便于恢复后核对。
手动备份步骤
- 打包配置与模板
- 备份主配置与模板:sudo tar -czvf cobbler_conf_$(date +%F).tar.gz /etc/cobbler/
- 备份数据与镜像
- 备份数据与镜像目录(按需精简,若空间紧张可排除大文件如 repo_mirror/ 的历史内容):
- sudo tar -czvf cobbler_data_$(date +%F).tar.gz /var/lib/cobbler /var/www/cobbler
- 备份引导文件
- 备份 PXE 引导文件(路径因系统可能不同,常见为 /var/lib/tftpboot/ 或 /tftpboot/):
- sudo tar -czvf cobbler_tftp_$(date +%F).tar.gz /var/lib/tftpboot
- 备份 DHCP 模板(若由 Cobbler 管理 DHCP)
- sudo cp /etc/cobbler/dhcp.template /root/backup/dhcp.template.bak
- 如使用 dnsmasq 模板也一并备份:sudo cp /etc/cobbler/dnsmasq.template /root/backup/dnsmasq.template.bak
- 备份日志(可选)
- sudo tar -czvf cobbler_logs_$(date +%F).tar.gz /var/log/cobbler
- 说明
- 上述目录结构与用途见 Cobbler 官方常用路径说明;DHCP 模板与引导文件是否需要备份取决于你的部署方式。
自动化备份脚本
- 本地每日备份(保留最近 7 天)
- 创建脚本 /usr/local/bin/backup_cobbler.sh:
- 内容:
- #!/bin/bash
- set -e
- BACKUP_DIR=“/backup/cobbler”
- DATE=$(date +%F)
- mkdir -p “$BACKUP_DIR”
- systemctl stop cobblerd httpd tftp xinetd || true
- tar -czf “$BACKUP_DIR/cobbler_conf_$DATE.tar.gz” /etc/cobbler
- tar -czf “$BACKUP_DIR/cobbler_data_$DATE.tar.gz” /var/lib/cobbler /var/www/cobbler
- tar -czf “$BACKUP_DIR/cobbler_tftp_$DATE.tar.gz” /var/lib/tftpboot 2>/dev/null || tar -czf “$BACKUP_DIR/cobbler_tftp_$DATE.tar.gz” /tftpboot 2>/dev/null || true
- cp /etc/cobbler/dhcp.template “$BACKUP_DIR/dhcp.template.$DATE.bak”
- cp /etc/cobbler/dnsmasq.template “$BACKUP_DIR/dnsmasq.template.$DATE.bak” 2>/dev/null || true
- systemctl start cobblerd httpd tftp xinetd || true
-
清理 7 天前
- find “$BACKUP_DIR” -name “*.tar.gz” -mtime +7 -delete
- find “$BACKUP_DIR” -name “*.bak” -mtime +7 -delete
- 赋权并加入定时任务:
- sudo chmod +x /usr/local/bin/backup_cobbler.sh
- sudo crontab -e 加入:0 2 * * * /usr/local/bin/backup_cobbler.sh
- 远程备份(rsync over SSH,免密)
- 前提:已配置 SSH 免密登录到备份机(如 backup@192.0.2.10)。
- 示例(上行同步到备份机):
- rsync -avz --delete -e ssh /backup/cobbler/ backup@192.0.2.10:/backup/cobbler/
- 如需近实时,可结合 inotifywait + rsync 做目录监听触发同步。
恢复步骤
- 停止服务
- sudo systemctl stop cobblerd httpd tftp xinetd
- 恢复配置与模板
- 配置:sudo tar -xzvf cobbler_conf_YYYY-MM-DD.tar.gz -C /
- DHCP 模板:sudo cp /root/backup/dhcp.template.YYYY-MM-DD.bak /etc/cobbler/dhcp.template
- 如使用 dnsmasq:sudo cp /root/backup/dnsmasq.template.YYYY-MM-DD.bak /etc/cobbler/dnsmasq.template
- 恢复数据与镜像
- sudo tar -xzvf cobbler_data_YYYY-MM-DD.tar.gz -C /
- 恢复引导文件
- sudo tar -xzvf cobbler_tftp_YYYY-MM-DD.tar.gz -C /
- 启动服务并同步
- sudo systemctl start cobblerd httpd tftp xinetd
- 使配置生效:sudo cobbler sync
- 验证
- 检查服务状态:sudo systemctl status cobblerd
- 查看日志:tail -n 100 /var/log/cobbler/cobbler.log
- 如由 Cobbler 管理 DHCP,核对 /etc/cobbler/dhcp.template 与网络网段;测试客户端 PXE 引导是否正常。
注意事项与建议
- 一致性优先:备份时停止 cobblerd 及相关服务,避免数据库/文件处于中间状态。
- 版本与路径差异:不同发行版或版本中,引导目录可能为 /var/lib/tftpboot 或 /tftpboot;恢复前确认实际路径。
- 空间与保留:镜像与仓库可能占用大量空间,建议对 repo_mirror/ 等做分级备份或排除策略,并保留合理的历史份数(如 7 天)。
- 校验与演练:定期在测试环境演练恢复流程,核对 server、next_server、DHCP 范围、镜像可用性、Kickstart 路径等关键项。