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

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修改而来

  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
要备份ESXi虚拟机使用Bacula,你可以按照以下步骤进行配置: 1. 安装Bacula:按照前面提到的步骤,在备份服务器上安装和配置Bacula软件。 2. 安装Bacula File Daemon:在ESXi主机上安装Bacula File Daemon(也称为Bacula Client)。你可以从Bacula官方网站下载适用于ESXi的Bacula File Daemon软件包,并按照官方文档进行安装和配置。 3. 配置Bacula Director:编辑Bacula Director的配置文件,添加一个新的FileSet(文件集)来指定要备份的ESXi虚拟机。在FileSet中,你可以指定要备份的虚拟机的名称、路径和文件类型等。 4. 配置Bacula Storage Daemon和存储介质:根据你的需求,配置Bacula Storage Daemon和存储介质,指定备份数据的存储位置和参数。 5. 创建备份策略:使用Bacula Console或Web界面,创建一个新的备份策略。在备份策略中,指定备份的目标为ESXi虚拟机,并设置备份计划和保留策略等。 6. 执行备份操作:启动Bacula服务,并按照预定计划自动执行备份任务。你也可以手动触发备份操作来验证配置是否正确。 请注意,备份ESXi虚拟机可能涉及到虚拟机快照和存储访问等问题。在进行配置前,请确保你对ESXi虚拟化环境和Bacula的操作有一定的了解,以免造成数据丢失或其他不可预料的问题。建议在实际操作前,先在测试环境中进行验证。同时,参考Bacula官方文档和ESXi相关文档,以获得更详细和准确的配置指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值