由于虚拟机svn服务器怕系统损坏,所以做了每天自动快照,但自动快照不能在计划任务中删除,所以ESXi6.0 设置自动删除快照脚本及计划任务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/bin/sh DAY=4 #保留数量 for i in `vim-cmd vmsvc/getallvms | awk '{print $1}' | grep -e "[0-9]"` do SNAPSHOT_COUNT=`vim-cmd vmsvc/snapshot.get $i | egrep -- '--\|-CHILD|^\|-ROOT' | wc -l` if [ $SNAPSHOT_COUNT -ge $DAY ]; then let NUM=$SNAPSHOT_COUNT-$DAY OLD_SNAPSHOT_ID=`vim-cmd vmsvc/snapshot.get $i | grep Id | head -$NUM | awk -F: '{print $2}'` for n in $OLD_SNAPSHOT_ID do vim-cmd vmsvc/snapshot.remove $i $n > /dev/null done fi done |
- 保存脚本为 del_shot.sh 放在/vmfs/volumes/59ef68bf-277d8cd1-24a6-1866dae8aa1e/crontab/del_shot.sh
- #脚本文件要放到/vmfs/volumes/***(存储目录)里,否则主机重启后脚本会删除
- 计划任务添加/var/spool/cron/crontabs/root
1 |
/bin/echo '0 3 * * * /vmfs/volumes/59ef68bf-277d8cd1-24a6-1866dae8aa1e/crontab/del_shot.sh' >> /var/spool/cron/crontabs/root |
4.因ESXi的crond使用的是busybox的。如果要添加crontab,执行以下步骤
# 结束当前进程,并重新运行
1 |
kill `cat /var/run/crond.pid` && crond |
5. cat /etc/rc.local.d/local.sh 放在启动脚本中。
/bin/echo ‘0 3 * * * /vmfs/volumes/59ef68bf-277d8cd1-24a6-1866dae8aa1e/crontab/del_shot.sh’ >> /var/spool/cron/crontabs/root
#脚本文件要放到/vmfs/volumes/***(存储目录)里,否则主机重启后脚本会删除