#!/bin/bash export EC2_HOME="/usr/share/ec2/ec2-api-tools" export JAVA_HOME="$(dirname $(dirname $(readlink /etc/alternatives/java)))" export PATH="$PATH:${EC2_HOME}/bin" export TZ="UTC" # retrieve AWS_* environment variables if [ -r "$HOME/.ec2-create-ngcp" ] ; then source "$HOME/.ec2-create-ngcp" fi usage() { echo "$0 - script to stop the specified EC2 instance ID Usage: $0 Supported OPTIONS: --help display this help text --region specify region that should be used (if unset defaults to the eu-west-1 zone) " } CMDLINE_OPTS=help,region: _opt_temp=$(getopt --name $0 -o +bch --long $CMDLINE_OPTS -- "$@") if [ $? -ne 0 ]; then echo "Try '$0 --help' for more information." >& 2 exit 1 fi eval set -- "$_opt_temp" _opt_public=false while :; do case "$1" in --help) usage ; exit 0; ;; --region) shift; AWS_REGION="$1" ;; --) shift; break ;; *) echo "Internal getopt error! $1" >&2 exit 1 ;; esac shift done # if unset set sane defaults [ -n "$AWS_REGION" ] || AWS_REGION="eu-west-1" if [ -z "$AWS_ACCESS_KEY" ] ; then echo "AWS_ACCESS_KEY is unset, can not continue." >&2 exit 1 fi if [ -z "$AWS_SECRET_KEY" ] ; then echo "AWS_SECRET_KEY is unset, can not continue." >&2 exit 1 fi check4progs(){ local RC='' for arg in $* ; do which $arg >/dev/null 2>&1 || RC="$arg" done if [ -n "$RC" ] ; then echo "$RC not found/executable" >&2 return 1 fi } if ! check4progs ec2-stop-instances ; then echo "Required tools not found, forgot to install ec2-api-tools?" >&2 exit 1 fi INSTANCE_ID="$1" echo "Stopping Instance ID $INSTANCE_ID" ec2-stop-instances --region "$AWS_REGION" "$INSTANCE_ID" if [ $? -ne 0 ] ; then echo "Noticed problem when trying to stop Instance with ID $INSTANCE_ID" >&2 exit 1 fi