Skip to content

Instantly share code, notes, and snippets.

@onagatani
Created September 28, 2015 07:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save onagatani/f245266fa4d52c21cf4d to your computer and use it in GitHub Desktop.
Save onagatani/f245266fa4d52c21cf4d to your computer and use it in GitHub Desktop.
EBSのスナップショットが本日日付で取得されているかチェックする
#!/usr/bin/env bash
export PATH=$PATH:/usr/local/bin/:/usr/bin
while getopts r: OPT
do
case $OPT in
"r" )
REGION=$OPTARG
;;
esac
done
export AWS_DEFAULT_REGION=${REGION:-ap-northeast-1}
INSTANCES=$( aws ec2 describe-tags\
--filters "Name=resource-type,Values=instance" "Name=key,Values=backup"\
--query "Tags[?Value=='ON'].ResourceId"\
--output text )
DATE=$(date --date "9 hours ago" -u "+%Y-%m-%d")
if [ -z "$INSTANCES" ]; then
exit 1
fi
for INSTANCE_ID in $INSTANCES
do
VOLUMES=$( aws ec2 describe-volumes\
--filters "Name=attachment.instance-id,Values=${INSTANCE_ID}"\
--query "Volumes[].VolumeId"\
--output text )
if [ "$VOLUMES" ]; then
for VOLUME_ID in $VOLUMES
do
SNAPSHOT=$( aws ec2 describe-snapshots\
--filters "Name=volume-id,Values=${VOLUME_ID}" "Name=progress,Values=100%"\
--query "reverse(sort_by(Snapshots,&StartTime))[].[StartTime][0]"\
--output text | grep "${DATE}" )
if [ -z "$SNAPSHOT" ]; then
logger -is -p user.info -t "EBS-SNAPSHOT" "ERROR ${VOLUMES}"
fi
done
fi
done
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment