ESXI 6.7自动关机设置
楼主最近配置了一台32G内存的微塔来做虚拟化服务的学习和搭建,使用esxi来跑虚拟化平台。每天定时开机可以通过wake on lan来实现,但是定时esxi的定时关机是没有直接的解决方案来实现的,因此我们只能通过连入esxi的ssh终端来实现。
本质上esxi就是一台linux的,可以执行定时脚本。但是当esxi重启后配置的信息会自动丢失,因此我们需要按照如下步骤来完成设置。
- 首先在esxi 6.7上开启ssh
- 然后通过ssh终端登录上去,用户名root,密码就是你安装esxi设置的root密码。
- 在/vmfs/volumes/datastore1 目录下创建一个自动关机脚本文件:poweroff.sh ,同时设置755权限
- 在poweroff.sh文件中写入如下信息:
#!/bin/sh
/sbin/poweroff
- 接着编辑/etc/rc.local.d/local.sh 文件,在其文件文本 末尾的"exit 0" 之前填入如下信息:
/bin/kill $(cat /var/run/crond.pid)
/bin/echo '58 12 * * * /vmfs/volumes/datastore1/poweroff.sh' >> /var/spool/cron/crontabs/root
/usr/lib/vmware/busybox/bin/busybox crond
最终效果如下:
- 这里写入的三行内容是为了在esxi启动后将cron设定的信息写入到crontab的配置文件中。并重启cron进程。注意cron的时间设定,esxi的底层时间全部是utc时间,因此我们在设定时间一定不能用我们中国时区的时间,将需要设定重启的时间减去8小时才是UTC时间。例如我们完成23:00关键,那么我们的cron时间设定为“0 15 *”。
7.最后我们需要执行以下 auto-backup.sh 脚本,这个是esxi自带的命令,直接执行即可。
8.如果你要立即生效你的cron设定,那么就执行下/etc/rc.local.d/local.sh 脚本就好了。
2.直通显卡,重启后仍然出现需要重新引导的问题
服务器只有一张显卡,且没有核显,所以esxi默认显卡为这个3080,导致每次启动都提示已启用/需要重新引导
解决方法:
一个是ACS功能检查,默认是false,改为true,不成功,重启后还是提示
之后shell登录后,设置值:
# 禁止ESXI使用核显命令
esxcli system settings kernel set -s vga -v FALSE
# 恢复ESXI使用核显命令
esxcli system settings kernel set -s vga -v TRUE
3. 命令行导出虚拟机配置
.\ovftool.exe vi://用户名:密码@esxiIP/虚拟机名称 C:\OVFTools\vmBackup\虚拟机名称.ova
http://kedaoyun.181222.xyz/#s/_c9TUv7g
ovftool.exe -ds=存储目录 -dm=thin -n=新主机的名字 "本地ovf文件系统" vi://用户名:密码@esxiIP
-dm:thin是精简置备的意思
4. ghettoVCB
1. 备份
- 下载文件到某个目录下,比如/vmfs/volumes/datastore1/backup/
- 挂载其他存储,比如nas的(可选)
- 配置文件
VM_BACKUP_VOLUME=/vmfs/volumes/nas/nas上的目录 # 备份的目录
DISK_BACKUP_FORMAT=thin # 备份格式
VM_BACKUP_ROTATION_COUNT=7 # 备份保留份数
POWER_VM_DOWN_BEFORE_BACKUP=0 # 备份前是否关闭VM
ENABLE_HARD_POWER_OFF=0 # 强制关机
ITER_TO_WAIT_SHUTDOWN=3
POWER_DOWN_TIMEOUT=5
ENABLE_COMPRESSION=0 # 使用压缩,0false,1true
VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0
ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP=0
SNAPSHOT_TIMEOUT=15
EMAIL_ALERT=1
EMAIL_LOG=1
EMAIL_SERVER=smtp服务器
EMAIL_SERVER_PORT=smtp服务器端口
EMAIL_DELAY_INTERVAL=1
EMAIL_USER_NAME=发送者邮箱
EMAIL_USER_PASSWORD=发送者邮箱密码
EMAIL_TO=接收者邮箱
EMAIL_ERRORS_TO=
EMAIL_FROM=发送者邮箱 需要和 一样
WORKDIR_DEBUG=0
VM_SHUTDOWN_ORDER=
VM_STARTUP_ORDER=
执行备份
/vmfs/volumes/datastore1/backup/ghettoVCB.sh -g /vmfs/volumes/datastore1/backup/ghettoVCB.conf -a
弄到定时任务里面
编辑这个文件,在之前添加代码vi /etc/rc.local.d/local.sh
在esxi前面添加代码
echo '0 18 * * * /vmfs/volumes/datastore1/backup/ghettoVCB.sh -g /vmfs/volumes/datastore1/backup/ghettoVCB.conf -a > /vmfs/test/logs/backup_log_$(date +\%Y\%m\%d).log 2>&1' >> /var/spool/cron/crontabs/root
/usr/lib/vmware/busybox/bin/busybox crond
查看是否添加
查看这个文件,看一下有没有添加cat /var/spool/cron/crontabs/root
2.恢复
echo "/vmfs/volumes/fn/esxibackup/network/虚拟机名称/虚拟机名称-2025-07-17_09-59-51.gz;/vmfs/volumes/datastore1;3
" > temp.list
./ghettoVCB-restore.sh -c temp.list
茜茜真是太棒了