xen7.1版本做定时快照以及用到的命令

xenserver 7.1版本没有自动定时创建快照的功能,我们可以通过服务器命令创建crontab任务来实现这个功能

先来记录一下xen的一些命令使用:

xe vm-list                         -----列出所有的虚拟vm实例
xe vm-list name-label="vm实例名称"    -------列出所提供的实例名称的vm虚拟机实例
xe vm-list uuid="UUID"               ------根据uuid列出其实例
xe vdi-list                        ------------- 显示所有虚拟硬盘(VDI)信息
xe vdi-list vm-uuid="VM-UUID"      -------- 匹配VM的UUID显示VDI信息
xe vdi-list uuid="UUID"            ------- 匹配VDI的UUID显示VDI信息
xe vdi-list name-label="VDI名称"   -------- 匹配VDI名称显示VDI信息
xe vdi-forgrt uuid="UUID"          -------- 匹配VDI的UUID遗忘该VDI信息(srcan可找回)

xe vm-snapshot vm="uuid" new-name-label="快照名称"     ----对某个虚拟机创建快照
xe snapshot-list                -----列出所有虚拟机的快照
xe snapshot-list name-label="快照名称" ------匹配快照名称列出其快照信息
xe snapshot-uninstall uuid="snapshot-uuid"    ----------根据uui来删除快照,会提示输入yes才可执行删除

以上命令就足够实现我们的要求了,写一个定时任务的脚本来实现对某个虚拟机自动定时创建快照并删除一个月之前创建的快照。

#!/bin/bash

echo ------------------start------------------------
#指定要备份的主机名称
hosts=('Centos7 1708 elasticsearch3' 'Centos7 1708 elasticsearch' 'Centos7 1708 elasticsearch2')

#获取当前日期
nowdate="`date +%Y%m%d`"
echo $nowdate

#获取一个月前的日期
beforedate="`date -d -1month '+%Y%m%d'`"


function check_return_and_exit() {
    [ $1 -ne 0 ] && echo "$2" && curl  'https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXXXXXXXXXXXXXX' --header 'Content-Type: application/json' -d '{"msgtype": "text", "text": {"content": "'"$2"'"}}' && exit 1
    return 0
}


for(( i=0;i<${#hosts[@]};i++))
do
	host=${hosts[i]}
	echo $host
	# 获取vm实例的uuid,用来创建snapshot
	uuid=`xe vm-list name-label="$host" | grep uuid | awk -F ': ' '{print $2}'`
	check_return_and_exit $? "$host   select uuid failed"
	echo $uuid
	
	#执行快照
	xe vm-snapshot vm="$uuid"  new-name-label="$nowdate"
	check_return_and_exit $? "$host   create snapshot failed"	
done

# 删除旧的快照
# 先获取旧快照的uuid
deleteuuids=`xe snapshot-list name-label="$beforedate" | grep uuid | awk -F ': ' '{print $2}'`
check_return_and_exit $? "select old snapshot failed"
for deleteuuid in $deleteuuids
do
	echo $deleteuuid
	echo yes | xe snapshot-uninstall uuid="$deleteuuid"
	check_return_and_exit $? "$deleteuuid   delete old snapshot failed"
done

将以上脚本放入crontab任务中,每七天执行一次会定时去为虚拟机做快照,并将过期的快照进行删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值