如何在 VMware ESXi 上配置每日定时关机(修正版)

之前那篇文章实际是不能自动关闭esxi的,我只是被插座的自动断电误导了,当然也被chatgpt信誓旦旦的语气误导了,下面我们来说一下最终的解决方案

1、先加一个新的脚本,代码如下

vi /vmfs/volumes/datastore1/auto_shutdown_loop.sh

//内容如下
#!/bin/sh

LOG="/vmfs/volumes/datastore1/auto_shutdown.log"
TARGET_TIME="17:00"   # UTC 时间(注意换算成北京时间,17点就是北京时间凌晨1点)

echo "$(date) auto shutdown watcher started" >> "$LOG"

while true; do
    NOW=$(date +%H:%M)

    if [ "$NOW" = "$TARGET_TIME" ]; then
        echo "$(date) match time, shutting down" >> "$LOG"
        /sbin/poweroff
        exit 0
    fi

    echo "$(date) still running" >> "$LOG"
    sleep 60
done

2、赋予执行权限

chmod +x /vmfs/volumes/datastore1/auto_shutdown_loop.sh

3、设置 ESXi 开机自动启动脚本

vi /etc/rc.local.d/local.sh

//在 exit 0 之前加入一行
/bin/sh /vmfs/volumes/datastore1/auto_shutdown_loop.sh &

4、然后尝试手动重启esxi,然后再进入到命令行中,查看日志来确定是否在执行

tail -f /vmfs/volumes/datastore1/auto_shutdown.log

应该能看到这些日志

Wed Dec 24 09:41:50 UTC 2025 auto shutdown watcher started
Wed Dec 24 09:42:50 UTC 2025 still running
Wed Dec 24 09:43:50 UTC 2025 still running

每分钟增加一条就对了。

文章作者: Wind
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 雕刻时光
喜欢就支持一下吧