由于虚拟机svn服务器怕系统损坏,所以做了每天自动快照,但自动快照不能在计划任务中删除,所以ESXi6.0 设置自动删除快照脚本及计划任务
#!/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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh
DAY=4#保留数量
foriin`vim-cmdvmsvc/getallvms|awk'{print $1}'|grep-e"[0-9]"`
do
SNAPSHOT_COUNT=`vim-cmdvmsvc/snapshot.get$i|egrep--'--\|-CHILD|^\|-ROOT'|wc-l`
if[$SNAPSHOT_COUNT-ge$DAY];then
letNUM=$SNAPSHOT_COUNT-$DAY
OLD_SNAPSHOT_ID=`vim-cmdvmsvc/snapshot.get$i|grepId|head-$NUM|awk-F:'{print $2}'`
fornin$OLD_SNAPSHOT_ID
do
vim-cmdvmsvc/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
/bin/echo '0 3 * * * /vmfs/volumes/59ef68bf-277d8cd1-24a6-1866dae8aa1e/crontab/del_shot.sh' >> /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,执行以下步骤
# 结束当前进程,并重新运行
kill `cat /var/run/crond.pid` && crond
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/***(存储目录)里,否则主机重启后脚本会删除