bash内でJSTで書いた時刻をUTCに変換する

alkoshikawa 1,216views 更新:2014年10月1日

なんでわざわざ変換するかというと、AWSのオートスケーリングの設定がJSTをサポートしていないためです。
以下はJST15時00分にインスタンスを2台に増やして15時15分に1台に減らすスクリプトです。
※シェルのタイムゾーンをJSTに変更する必要があります。

vim /path/to/script/something-autoscaling-update.sh
----------------------
#!/bin/sh

DATE=`date +"%Y-%m-%d"`

if [ "$1" != "" ]; then
        DATE=$1
fi

if [ "$1" = "--help" ]; then
        echo "usage: $0 or $0 2014-XX-XX"
        exit 0
fi

JP_START_TIME="15:00:00"
JP_END_TIME="15:15:00"

UNIX_START_TIME=`date -d "${DATE} ${JP_START_TIME}" +%s`
UNIX_END_TIME=`date -d "${DATE} ${JP_END_TIME}" +%s`

START_TIME=`date -u -d "@${UNIX_START_TIME}" "+%Y-%m-%dT%H:%M:%SZ"`
END_TIME=`date -u -d "@${UNIX_END_TIME}" "+%Y-%m-%dT%H:%M:%SZ"`

echo "UTC_START: $START_TIME"
echo "UTC_END: $END_TIME"

echo "as-put-scheduled-update-group-action something-update-1 -g {auto-scaling-group} --region ap-northeast-1 --time '{START_TIME}' -min-size 2 -max-size 4 --desired-capacity 2"

as-put-scheduled-update-group-action something-update-1 -g {auto-scaling-group} --region ap-northeast-1 --time "${START_TIME}" -min-size 2 -max-size 4 --desired-capacity 2

echo "as-put-scheduled-update-group-action something-update-2 -g {auto-scaling-group} --region ap-northeast-1 --time '${END_TIME}' -min-size 1 -max-size 2 --desired-capacity 1"

as-put-scheduled-update-group-action something-update-2 -g {auto-scaling-group} --region ap-northeast-1 --time "${END_TIME}" -min-size 1 -max-size 2 --desired-capacity 1

echo "describe schedule"

as-describe-scheduled-actions
----------------------

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません