温馨提示×

如何备份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(或按实际部署的服务名调整)。
    • 备份时保持一致性:先停止服务,再打包/同步;恢复后再启动服务。
    • 记录关键参数:如 servernext_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 天)。
  • 校验与演练:定期在测试环境演练恢复流程,核对 servernext_server、DHCP 范围、镜像可用性、Kickstart 路径等关键项。

0