如何通過API配置定時自定義快照

本篇文章給大家帶來的內容是關于如何通過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的快照

如何通過API配置定時自定義快照

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享