云祺Logo 云祺Logo

Proxmox自动关机功能配置方法详解

2026-06-18

目录:

  • 什么是 Proxmox 自动关机功能?

  • 方法1:使用 Cron 实现定时关机

  • 方法2:Cron 加脚本实现空闲检测关机

  • 方法3:systemd 定时器加脚本

  • 方法4:UPS 加 NUT 集成

在 Proxmox 中启用自动关机功能,可让您无需手动操作即可自动关闭主机、虚拟机或容器。该功能可通过计划任务、空闲状态或 UPS 事件来触发。此举有助于节约能源、保护数据并降低人为操作失误的风险。

什么是 Proxmox 自动关机功能?

Proxmox 自动关机功能可让您自动执行关机任务。您可通过 cron、systemd 或 UPS 工具对其进行管理。它不仅仅是一个基础的 Linux 关机操作——Proxmox 会使用 qmpct 命令,以优雅方式关闭虚拟机和容器。若已安装 qemu-guest-agentProxmox 甚至能通知客户操作系统执行干净关机。

如果您的服务器在夜间处于空闲状态,或者您希望在备份完成后将其关闭,那么自动关机功能将是理想选择。它有助于降低功耗、明确维护时段,并避免人为失误。

方法1:使用 Cron 实现定时关机

Cron 是最简单的方法。它不会检查是否有任务正在运行,但使用方便且可靠。

例如,每天凌晨1:00关机:

0 1 * * * root /usr/sbin/shutdown -h now

先进行测试:

shutdown -h +5 “测试:5 分钟后关机”grep shutdown /var/log/syslog

虚拟机会接收 ACPI 信号并尝试执行正常关机(如果支持)。但 Cron 不会检查是否有正在进行的任务,因此正在运行的作业可能会被中断。

方法2:使用Cron + 空闲检测脚本

该脚本可在关机前检查系统活动状态,从而降低意外中断正在运行的虚拟机或任务的风险。

示例脚本 /root/shut.sh

#!/bin/bashACTIVE_VMS=$(qm list | grep -cv stopped)ACTIVE_PCT=$(pct list | grep -cv stopped)ACTIVE_TASKS=$(pgrep -f "pvesr|zfs scrub|vzdump")if [[ $ACTIVE_VMS -eq 0 && $ACTIVE_PCT -eq 0 && -z "$ACTIVE_TASKS" ]]; then  echo "$(date): System idle. Preparing to shut down." >> /var/log/auto-shut.log  shutdown -h +30 "Idle state: system will shut down in 30 minutes"fi

将其设置为可执行文件并添加到 Cron:

chmod +x /root/shut.sh*/5 * * * * root /root/shut.sh

此脚本每5分钟检查一次。若无任何进程在运行,则安排系统在30分钟后关机。

方法3:systemd 定时器 + 脚本

如需更精细的控制和更完善的日志记录,建议在生产环境中使用 systemd。

脚本: /usr/local/bin/autoshutdown

#!/bin/bash正在运行的虚拟机数量=$(qm list | grep -cv stopped)正在运行的容器数量=$(pct list | grep -cv stopped)正在运行的相关任务进程数=$(pgrep -f "pvesr|zfs scrub|vzdump")if [[ $正在运行的虚拟机数量 -eq 0 && $正在运行的容器数量 -eq 0 && -z "$正在运行的相关任务进程数" ]]; then  echo "$(date): 确认系统空闲。将在稍后关机。" >> /var/log/autoshutdown.log  shutdown -h +10 "空闲状态:10 分钟后关机"fi

systemd 服务 /etc/systemd/system/autoshutdown.service

[单元]描述=Proxmox 自动关机服务[服务]类型=一次性启动前执行=/bin/sleep 300启动时执行=/usr/local/bin/autoshutdown

Systemd 定时器 /etc/systemd/system/autoshutdown.timer

[单元]描述=Proxmox 自动关机定时器[定时器]日历触发=*-*-* 23:00:00持续生效=true[安装]启用目标=timers.target

启用它:

systemctl daemon-reloadsystemctl enable --now autoshutdown.timer

注意:Type=oneshot 可防止任务并发执行。sleep 300 添加了5分钟的缓冲时间。

方法4:UPS 与 NUT 集成

断电保护在商业环境中必不可少。NUT 与 UPS 可协助您智能关闭系统。

安装 NUT:

apt install nut

配置 /etc/nut/nut.conf

模式=网络服务器

然后编辑 /etc/nut/ups.conf 和 /etc/nut/upsmon.conf,例如:

MONITOR ups@localhost 1 monuser password slaveSHUTDOWNCMD "systemctl poweroff"

监控 UPS:

upsc ups@localhost

模拟断电:

upsmon -c fsd

在主机关闭前关闭虚拟机:

qm 关机 <ID> --timeout 60  pct 关机 <ID> --timeout 60

 

请确保虚拟机中已安装 qemu-guest-agent,以保证其能够正常响应。

使用 Vinchin 在自动关机后保护虚拟机

一旦自动关机功能正常运行,下一步就是确保您的虚拟机数据持续安全。

为自信地保护您的 Proxmox 环境,请考虑使用 Vinchin 备份与恢复——一款专业的、企业级虚拟机备份解决方案,支持 Proxmox VE 以及 VMwareHyper-VoVirtRHVXCP-ngXenServerOpenStack 等 15 种以上平台。

Vinchin 提供强大功能,包括永久增量备份、内置去重压缩虚拟机到虚拟机(V2V)迁移以及快速恢复选项。这些功能有助于减小备份数据量、加速任务执行,并简化灾难恢复流程。

简洁易用的网页控制台让您只需四个步骤即可备份 Proxmox 虚拟机:

1. 只需在主机上选择虚拟机

备份 Proxmox 虚拟机

2. 然后选择备份目标位置

备份 Proxmox 虚拟机

3. 选择策略

备份 Proxmox 虚拟机

4. 最后提交任务

备份 Proxmox 虚拟机

Vinchin 受到全球用户的信赖,以可靠性著称。立即开始使用为期15天的全功能免费试用——点击下方按钮,几分钟内即可下载并部署。

下载按钮

下载免费试用版

适用于多种数据备份

* 15天全功能免费安全下载

Proxmox 自动关机常见问题解答

问题1:如何排查定时器或脚本的问题?

检查 systemctl 状态和 journalctl -u autoshutdown.service。

第二季度:如果关机卡住怎么办?
使用 journalctl 检查是哪个服务停滞了。

问题3:我可以控制虚拟机的关机顺序吗?
可以——按优先级依次使用 qm shutdown 命令关闭虚拟机。

结论

Proxmox 自动关机功能有助于节约电力、保护数据并降低风险。您可通过定时任务、空闲检测或 UPS 电源触发该功能。请根据实际需求选择合适的方式,让您的系统更智能、更安全、更高效。


云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆

您可能感兴趣的新闻 换一批

现在下载,可享15天免费试用

立即下载

请添加好友为您提供支持
jia7jia_7

微信售后服务二维码

请拨打电话
为您提供支持

400-9955-698