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份备份。