Skip to content

Instantly share code, notes, and snippets.

@davidkelley
Created March 27, 2015 15:43
Show Gist options
  • Save davidkelley/741c64a3d623e9eaa3a8 to your computer and use it in GitHub Desktop.
Save davidkelley/741c64a3d623e9eaa3a8 to your computer and use it in GitHub Desktop.
Determine oldest instance inside AutoScalingGroup using LaunchTime
GROUP=$(ec2-describe-tags --filter "resource-type=instance" --filter "resource-id=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)" --filter "key=aws:autoscaling:groupName" | cut -f5)
IDS=$(aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names $GROUP --query 'AutoScalingGroups[0].Instances[].InstanceId' --output text | sed 's/\t/ /g')
IPS=$(aws ec2 describe-instances --instance-ids $IDS --region us-east-1 --query Reservations[].Instances[].PrivateIpAddress --output text | sed 's/\t/,/g')
LAUNCH_TIME=$(date -d $(aws ec2 describe-instances --instance-ids `curl -s http://169.254.169.254/latest/meta-data/instance-id` --query Reservations[].Instances[0].LaunchTime --output text))
LAUNCH_TIMES=$(aws ec2 describe-instances --instance-ids $IDS --region us-east-1 --query Reservations[].Instances[].LaunchTime --output text)
OLDEST=0
for time in $LAUNCH_TIMES; do
if [[ `date -d $time` < $LAUNCH_TIME ]];
then
OLDEST=1
fi
done
exit $OLDEST
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment