0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GCEのスナップショット自動取得バッチ

Posted at

経緯

仕事でGCEのスナップショットを自動で取得するバッチを作成することになったので、備忘録もかねてアップする。

環境

GCEの無料枠を利用してVMインスタンスを構築しておく。
ディスクはCentOS7にした。

#!/bin/bash

# スナップショット作成対象のVMインスタンスのリスト作成 
gcloud compute disks list --format='value(name,zone)'| while read DISK_NAME ZONE; do

    RETRY_MAX_TIME=3
    COUNT=0
    SNAPSHOT_NAME=$DISK_NAME-$(date "+%Y-%m-%d")
    # スナップショット作成に3回失敗したら次のVMインスタンスのスナップショットを作成する
    until [ $COUNT -ge $RETRY_MAX_TIME ]
    do
        # スナップショット作成
        gcloud compute disks snapshot $DISK_NAME --snapshot-names $SNAPSHOT_NAME --zone $ZONE
        
        # スナップショット作成の成否判定のために、対象VMインスタンスのスナップショットの存在確認を行う
        listcount=`gcloud compute snapshots list --filter="name=$SNAPSHOT_NAME" --format="value(name)" | wc -l`
        
        if [ $listcount = "1" ]; then  
            # スナップショット作成に成功した場合、次のVMインスタンスのスナップショットを作成する
            break
        else
            # スナップショット作成に失敗した場合、リトライする
            let COUNT++
        fi
    done
done

補足

① VMインスタンスのリスト取得時に、すべてのVMインスタンスをスナップショット作成対象とするので、作成不要なVMインスタンスがある場合は除外処理を入れる必要がある。
② クーロンで一日一回実行の想定で作成しているが、一日に複数回動かしたい場合はスナップショット作成前に同一スナップショットが存在するか確認する必要がある。

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?