在ESXi里面添加cron,自动运行,删除最后的快照


#!/bin/sh
#auto remove ESXi snapshots
#vi /var/spool/cron/crontabs/root add job
for i in `vim-cmd vmsvc/getallvms | awk '{print $1}'`
do
    SNAPSHOT_COUNT=`vim-cmd vmsvc/snapshot.get $i | egrep -- '--\|-CHILD|^\|-ROOT' | wc -l`
    if [ $SNAPSHOT_COUNT -ge 4 ]; then
        OLD_SNAPSHOT_ID=`vim-cmd vmsvc/snapshot.get $i | grep Id | head -1 | awk -F: '{print $2}'`
        vim-cmd vmsvc/snapshot.remove $i $OLD_SNAPSHOT_ID
    fi  
done

上面的脚本,仅保留4个最近的快照


因ESXi的crond使用的是busybox的。如果要添加crontab,执行以下步骤

# 结束当前进程,并重新运行
kill `cat /var/run/crond.pid` && crond


如果想重启ESXi还能用.执行以下步骤(ESXi5.1)

#vi /etc/rc.local.d/local.sh
#添加以下内容
/bin/kill $(cat /var/run/crond.pid)
/bin/echo YOUR CRONTAB JOB LINE HERE >> /var/spool/cron/crontabs/root
crond


获取硬盘smart信息

for i in `esxcli storage core device list | grep "Local ATA Disk" | sed  's/.*(\|)//g'`; do esxcli storage core device smart get -d "$i"; done


参考:Job scheduling under ESXi 5