本篇文章給大家帶來的內容是關于如何通過api配置定時自定義快照,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
如何通過API配置定時自定義快照
SSD云盤無法開啟自動快照,那么就需要自己調用API來設定計劃任務完成快照自動化
1、安裝配置AliyunCli環境
參考官方文檔:AliyunCli配置?
2、將如下內容保存為腳本/home/creare.sh
###?本腳本僅測試并執行于linux下 #!/bin/bash #source?/etc/profile #保留幾份快照(無自定義快照情況下不能大于24) num=3 num=$[$num?-?1] #檢查AliyunCli執行路徑 path=`which?aliyuncli` #檢查AliyunCli和ECS?SDK安裝情況 check=`$path?--help?|wc?-l` check_sdk=`$path?ecs?|wc?-l` start_snapshot(){ for?instance?in?`cat?/home/instance.txt`; do disk=`$path?ecs?DescribeDisks?--InstanceId?$instance?--output?json?--filter?Disks.Disk[*].DiskId?|awk?-F?"""?'{print?$2}'` region=`$path?ecs?DescribeDisks?--InstanceId?$instance?--output?json?--filter?Disks.Disk[0].RegionId?|awk?-F?"""?'{print?$2}'` for?disk?in?$disk do id=`$path?ecs?DescribeSnapshots?--RegionId?$region?--DiskId?$disk?--Status?accomplished?--SnapshotName?ScriptsCreate?--output?json?--filter?Snapshots.Snapshot[$num].SnapshotId?|awk?-F?"""?'{print?$2}'` if?[[?"$id"?!=?""?]];?then $path?ecs?DeleteSnapshot?--SnapshotId?$id sleep?2 snapshot=ScriptsCreate $path?ecs?CreateSnapshot?--DiskId?$disk?--SnapshotName?$snapshot else snapshot=ScriptsCreate $path?ecs?CreateSnapshot?--DiskId?$disk?--SnapshotName?$snapshot fi sleep?1 done sleep?1 done } if?[[?"$check"?-ge?"38"?]];then ????if?[[?"$check_sdk"?-ge?"56"?]];?then ????start_snapshot ????else ????echo?"請先確保ECS?SDK安裝正確,再來執行該腳本!" ????fi else echo?"請先確保AliyunCli安裝正確,再來執行該腳本!" fi
注意:上述腳本會自動刪除備份個數以上的最早的腳本創建的快照
請確保腳本創建的快照額度夠用,否則會導致腳本執行部分失敗
例如:
設置NUM為3,有3個磁盤,那么快照剩余額度需要大于等于9個
3、將需要添加自動快照的ECS實例ID保存到/home/instance.txt文件中
4、添加crontab計劃任務(每晚1點30分執行計劃任務)
crontable -e插入如下內容:
30?1?*?*?*?/bin/sh?/home/create.sh
重啟crond服務
service?crond?restart
5、快照執行完畢后我們會在控制臺看到名稱為ScriptsCreate的快照
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END