上一篇文章中,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 的值換掉即可。

Reference