pve快速备份
用于一键备份Proxmox VE (PVE)关键配置到压缩文件的Shell脚本
#!/bin/bash
# PVE一键备份脚本
# 功能:备份PVE集群配置、额外配置和网络设置到 tar.gz 文件
# 检查是否为root用户
if [ "$(id -u)" -ne 0 ]; then
echo "请使用root用户运行此脚本!"
exit 1
fi
# 设置备份目录和文件名
BACKUP_DIR="/tmp/pve_backup_$(date +%Y%m%d_%H%M%S)"
BACKUP_TAR="/root/pve_backup_$(date +%Y%m%d_%H%M%S).tar.gz"
mkdir -p "$BACKUP_DIR"
echo "开始备份PVE配置..."
# 1. 备份PVE集群配置
echo "备份PVE集群配置..."
mkdir -p "$BACKUP_DIR/pve-cluster"
cp -r /var/lib/pve-cluster "$BACKUP_DIR/pve-cluster/"
# 2. 备份额外配置
echo "备份额外配置..."
mkdir -p "$BACKUP_DIR/boot"
mkdir -p "$BACKUP_DIR/modprobe"
cp /etc/modules-load.d/* "$BACKUP_DIR/modprobe/" 2>/dev/null
cp /etc/default/grub "$BACKUP_DIR/boot/"
cp /etc/modules "$BACKUP_DIR/" 2>/dev/null
# 3. 备份网络配置
echo "备份网络配置..."
mkdir -p "$BACKUP_DIR/network"
cp -r /etc/network/* "$BACKUP_DIR/network/" 2>/dev/null
# 4. 备份crontab
echo "备份crontab..."
crontab -l > "$BACKUP_DIR/crontab_backup" 2>/dev/null
# 5. 创建恢复脚本
echo "创建恢复脚本..."
cat > "$BACKUP_DIR/restore_pve.sh" << 'EOF'
#!/bin/bash
# PVE配置恢复脚本
if [ "$(id -u)" -ne 0 ]; then
echo "请使用root用户运行此脚本!"
exit 1
fi
echo "开始恢复PVE配置..."
# 1. 恢复PVE集群配置
echo "恢复PVE集群配置..."
cp -r pve-cluster/pve-cluster /var/lib/
# 2. 恢复额外配置
echo "恢复额外配置..."
cp modprobe/* /etc/modules-load.d/ 2>/dev/null
cp boot/grub /etc/default/
cp modules /etc/ 2>/dev/null
# 更新grub和initramfs
echo "更新grub和initramfs..."
update-grub
update-initramfs -k all -u
# 3. 恢复网络配置
echo "恢复网络配置..."
cp -r network/* /etc/network/ 2>/dev/null
# 4. 恢复crontab
echo "恢复crontab..."
crontab crontab_backup 2>/dev/null
echo "配置恢复完成!建议重启系统以使所有更改生效。"
EOF
chmod +x "$BACKUP_DIR/restore_pve.sh"
# 创建 tar.gz 备份文件
echo "创建 tar.gz 备份文件..."
cd "$BACKUP_DIR/.."
tar -czvf "$BACKUP_TAR" "$(basename $BACKUP_DIR)" > /dev/null
# 清理临时文件
rm -rf "$BACKUP_DIR"
echo "备份完成!"
echo "备份文件已保存到: $BACKUP_TAR"
echo "要恢复配置,请解压 tar.gz 文件并运行其中的 restore_pve.sh 脚本"
pve快速备份
https://unnzz.com/archives/pvekuai-su-bei-fen