Proxmox VE备份策略

虚拟机备份实现

  • 备份脚本
#!/usr/bin/env bash
# 文件名: /data/script/backup.sh
# 描述: Proxmox VE虚拟机备份脚本,并实现自动清理

set -e

KEEPDAYS=3
NAME="snapshot-$(date +%Y-%m-%d_%H-%M-%S)"
BACKUP_DIR=/backup/dump

VMIDS=(
       100
       150
       151
       152
       153
       154
       200
       241
)

for VMID in ${VMIDS[@]}
do
    echo "VM ID: [ ${VMID} ] is ready to start backup..."
    if ! vzdump --compress zstd $VMID --dumpdir ${BACKUP_DIR} --prune-backups keep-daily=${KEEPDAYS}; then
        echo "VM ID: [ ${VMID} ] backup status [ failed ]."
        exit 1
    fi
done

使用systemd来实现计划任务

  • /etc/systemd/system/vm-backup.service
[Unit]
Description=VM Backup to the systemd journal

[Service]
Type=oneshot
ExecStart=/data/script/backup.sh

[Install]
WantedBy=multi-user.target
  • /etc/systemd/system/vm-backup.timer
[Unit]
Description=VM Backup Task


[Timer]
OnCalendar=*-*-* 00:00:00   # 每天凌晨12点执行一次
Persistent=true

[Install]
WantedBy=timers.target

  • 启动服务
# systemctl start vm-backup.timer

  • 查看备份计划任务状态
# systemctl list-timers |grep vm-backup.timer
Sat 2025-03-11 00:00:00 CST 46min left    -                           -            vm-backup.timer              vm-backup.service

备份结果

此时,在脚本定义备份好的VM,都会保留3份备份。