在上一篇文章中,SUBID 是手動取得,我很懶,希望能把這個動作也寫進 script,未來有其他台機器要備份,只要稍作修改就可以套用了。
希望做到的功能是:
1. 取回 server list 後,透過 label 去將我要備份的 SUBID 找出來
2. 再透過 SUBID 進行備份
這邊需要用到 jq 來協助我們解析 json。
安裝 jq
sudo apt-get install jq
Result
#!/bin/bash
date=$(date +"%Y_%m_%d_%H_%M")
description="bak_"$date
api_key=$YOUR_API_KEY
label=$YOUR_VPS_LABEL
sub_id=$(curl -H "API-Key: $api_key" https://api.vultr.com/v1/server/list | jq '.[] | select(.label=="'$label'") | .SUBID' -r)
echo $description $sub_id
curl -H "API-Key: $api_key" https://api.vultr.com/v1/snapshot/create --data "SUBID=$sub_id&description=$description"
未來要修改只要把 api_key 跟 label 的值換掉即可。