Skip to content

lminimum/PveShell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PVE 自动化脚本合集


项目介绍

本项目是一个基于 Proxmox VE (PVE) 平台的自动化脚本合集,旨在帮助管理员简化日常虚拟化管理操作,提高工作效率。

目前项目包含以下功能脚本:

  1. 虚拟机快照管理与重启脚本
    • 功能
      • 定时创建虚拟机快照(每日、每周、每月)。
      • 自动删除过期快照,避免存储空间占用。
      • 批量重启虚拟机,优雅关机失败时强制关机并重启。
      • 当虚拟机无法正常启动时,自动回滚到最近的快照,最多重试指定次数。
    • 适用场景
      • 自动化维护虚拟机快照。
      • 定期重启虚拟机,确保系统稳定运行。
      • 遇到启动失败时自动恢复到正常状态。

如何使用脚本

1. 脚本准备

确保 PVE 主机满足以下条件:

  • 脚本需要执行 qm 命令(用于管理虚拟机),路径 /usr/sbin/ 已正确配置。
  • 日志文件将保存在 /var/log/restart_vm_with_snapshot.log,需确保该路径可写。

2. 配置脚本

打开脚本文件,修改以下部分内容以适配你的环境:

# 虚拟机ID列表,根据需求替换为你的虚拟机ID
qvmids=(102)

# 最大回滚重试次数
MAX_RETRY=3
  • qvmids:需要管理的虚拟机 ID 列表。可以添加多个虚拟机,例如 qvmids=(101 102 103)
  • MAX_RETRY:当虚拟机无法启动时,回滚快照的最大重试次数(默认值为 3)。

3. 运行脚本

将脚本上传到 PVE 主机,并赋予执行权限:

chmod +x restart_vm_with_snapshot.sh

手动运行脚本:

./restart_vm_with_snapshot.sh

4. 设置定时任务 (可选)

如果需要每天自动执行脚本,可以通过 crontab 添加定时任务:

  1. 编辑 crontab 配置:
    crontab -e
  2. 添加定时任务。例如,每天凌晨 2 点运行脚本:
    0 2 * * * /path/to/restart_vm_with_snapshot.sh >> /var/log/restart_vm_with_snapshot_cron.log 2>&1

脚本日志

脚本日志默认保存在 /var/log/restart_vm_with_snapshot.log,格式如下:

[2024-06-17 12:00:01] [VM 102] [INFO] 开始管理快照
[2024-06-17 12:00:02] [VM 102] [SUCCESS] 创建快照 daily-20240617
[2024-06-17 12:00:22] [VM 102] [ERROR] 虚拟机启动失败,开始回滚 (尝试次数: 1)
[2024-06-17 12:00:40] [VM 102] [SUCCESS] 回滚到快照 daily-20240617
[2024-06-17 12:00:41] [VM ALL] [INFO] 任务执行完成

后续计划

  • 添加更多 PVE 自动化脚本,如资源监控、自动备份等。
  • 优化现有脚本,支持更多管理操作和参数配置。

注意事项

  • 在生产环境使用前,请先测试脚本,以确保其符合预期效果。
  • 脚本需以管理员权限运行,确保有足够的权限管理虚拟机和快照。

About

Some automatic scripts about proxmoxve

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages