esxi 自动给虚拟机打快照(定时快照任务)

您所在的位置:网站首页 vmware虚拟机快照位置 esxi 自动给虚拟机打快照(定时快照任务)

esxi 自动给虚拟机打快照(定时快照任务)

2023-10-21 19:56| 来源: 网络整理| 查看: 265

esxi重启之后会清除 /vmfs/volumes 目录以外的文件,故需将脚本放在 /vmfs/volumes/datastore1 目录中

1.添加新增快照和删除快照的命令

cd /vmfs/volumes/datastore1 mkdir crontabs cd crontabs touch snapshot_creat.sh vi snapshot_creat.sh

新建快照的脚本 将以下内容复制粘贴至即可snapshot_creat.sh(不需要打快照的虚拟机,在虚拟机的备注添加过滤的关键字nosnap即可,快照命名规则(日期data“+%F”)

#!/bin/sh #auto create ESXi snapshots for i in `vim-cmd vmsvc/getallvms | grep -v nosnap | awk '{print $1}' | grep -e "[0-9]"` do vname=$(vim-cmd vmsvc/get.summary $i | grep name | awk '{ print $3 }' | cut -d \" -f 2) vim-cmd vmsvc/snapshot.create $i $(date "+%F") sleep 30s if [ $? -eq 0 ];then echo "$(date "+%F %T") : $vname snapshot create success.." >> ./schedule_snap.log else echo "$(date "+%F %T") : $vname snapshot create FAILED.." >> ./schedule_snap.log fi done touch snapshot_del.sh vi snapshot_del.sh

删除快照的脚本 将以下内容复制粘贴至即可snapshot_del.sh

DAY=3 #保留快照的数量 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 -gt $DAY ]; then DELETE_COUNT=$(($SNAPSHOT_COUNT-$DAY)) OLD_SNAPSHOT_ID=`vim-cmd vmsvc/snapshot.get $i | grep Id | head -$DELETE_COUNT | awk -F: '{print $2}'` for n in $OLD_SNAPSHOT_ID do vim-cmd vmsvc/snapshot.remove $i $n > /dev/null sleep 30s done fi done

赋予脚本所在文件夹执行权限

chmod -R 755 crontabs

2.添加crond任务

vi /etc/rc.local.d/local.sh kill $(cat /var/run/crond.pid) /bin/echo "0 1 * * 2,4 sh /vmfs/volumes/62fd4366-f3aa3484-a66b-5c6f693aa786/crontabs/snapshot_creat.sh" >> /var/spool/cron/crontabs/root /bin/echo "30 2 * * 2,4 sh /vmfs/volumes/62fd4366-f3aa3484-a66b-5c6f693aa786/crontabs/snapshot_del.sh" >> /var/spool/cron/crontabs/root /bin/echo "00 1 * * 6 sh /vmfs/volumes/62fd4366-f3aa3484-a66b-5c6f693aa786/crontabs/snapshot_delall.sh" >> /var/spool/cron/crontabs/root crond

保存退出

**重点说明**

crond服务的计划任务参数中,所有命令一定要用绝对路径的方式来写,即 /vmfs/volumes/ 后面的路径,每个人的都不一样 如果不知道绝对路径,请用使用如下命令 cd /vmfs/volumes/data,按tab键,并按enter,会自动显示该ESXi主机存储的绝对路径 delall.sh 脚本即为删除所有快照,将del.sh脚本中的,DAY=3 改为DAY=0即可

最后执行该命令刷新,重启机器即可生效

/sbin/auto-backup.sh

**说明**

0 1 * * 2,4 # 定时任务分别对应 **分 时 日 月 星期** 即为,每周二周四的一点执行任务 30 2 * * 2,4 # 定时任务分别对应 **分 时 日 月 星期** 即为,每周二周四的两点半执行任务 00 1 * * 6 # 定时任务分别对应 **分 时 日 月 星期** 即为,每周六的一点执行任务 **/sbin/auto-backup.sh** 保存local.sh的修改设置,使其**永久生效**

参照https://blog.csdn.net/taoke00/article/details/88105001?spm=1001.2014.3001.5502修改而来



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3