您的当前位置:首页>全部文章>文章详情

EXSI自动定时关机

发表于:2024-05-28 09:46:36浏览:208次TAG: #exsi #crontab

首先先解决如何定时的问题

  • 其实exsi本身是基于Linux的,也就是说,可以考虑利用crontab来实现,脚本位置位于/var/spool/crontab/root,可这个文件一旦重启就会覆盖,只能实现一次定时关机。
  • 可以考虑/etc/rc.local.d/local.sh文件,它是exsi启动时会运行的一个脚本,可以在其exit 0前加入以下内容:
/bin/kill $(cat /var/run/crond.pid)
/bin/echo '00 17 * * * /vmfs/volumes/datastore1/autoshutdown.sh' >> /var/spool/cron/crontabs/root
/usr/lib/vmware/busybox/bin/busybox crond
  • 这样就可以在启动时将定时脚本内容写入到crontab的脚本中

    注意

  • 修改/etc/rc.local.d/local.sh并没有结束,我们还需要执行一次/sbin/auto-backup.sh,将修改后的local.sh保存住,避免重启后丢失。

接下来写关机脚本

  • 文件/vmfs/volumes/datastore1/autoshutdown.sh,一定要放到/vmfs/volumes/下面,因为其他地方可能在重启后文件依然会丢失,脚本内容如下:
#!/bin/sh

#关闭虚拟机,以下后面跟着的数字是虚拟机的ID,可在exsi管理界面看到
vim-cmd vmsvc/power.off 49  # power.off相当于直接关闭电源,长按主机开关三秒
vim-cmd vmsvc/power.off 44
vim-cmd vmsvc/power.shutdown 20
vim-cmd vmsvc/power.shutdown 1
vim-cmd vmsvc/power.shutdown 10  # power.shutdown相当于向该机器发送关机指令,正常关机,但不一定能成功
vim-cmd vmsvc/power.shutdown 37
vim-cmd vmsvc/power.shutdown 45
#关闭主机
/sbin/poweroff
  • 文件创建好后别忘了给文件授予执行权限chmod +x /vmfs/volumes/datastore1/autoshutdown.sh