ec2-run-user-data
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:2k
源码类别:

网格计算

开发平台:

Java

  1. #!/bin/bash
  2. #
  3. # ec2-run-user-data - Run instance user-data if it looks like a script.
  4. #
  5. # Only retrieves and runs the user-data script once per instance.  If
  6. # you want the user-data script to run again (e.g., on the next boot)
  7. # then add this command in the user-data script:
  8. #   rm -f /var/ec2/ec2-run-user-data.*
  9. #
  10. # History:
  11. #   2008-05-16 Eric Hammond <ehammond@thinksome.com>
  12. #   - Initial version including code from Kim Scheibel, Jorge Oliveira
  13. #   2008-08-06 Tom White
  14. #   - Updated to use mktemp on fedora
  15. #
  16. prog=$(basename $0)
  17. logger="logger -t $prog"
  18. curl="curl --retry 3 --silent --show-error --fail"
  19. instance_data_url=http://169.254.169.254/2008-02-01
  20. # Wait until networking is up on the EC2 instance.
  21. perl -MIO::Socket::INET -e '
  22.  until(new IO::Socket::INET("169.254.169.254:80")){print"Waiting for network...n";sleep 1}
  23. ' | $logger
  24. # Exit if we have already run on this instance (e.g., previous boot).
  25. ami_id=$($curl $instance_data_url/meta-data/ami-id)
  26. been_run_file=/var/ec2/$prog.$ami_id
  27. mkdir -p $(dirname $been_run_file)
  28. if [ -f $been_run_file ]; then
  29.   $logger < $been_run_file
  30.   exit
  31. fi
  32. # Retrieve the instance user-data and run it if it looks like a script
  33. user_data_file=`mktemp -t ec2-user-data.XXXXXXXXXX`
  34. chmod 700 $user_data_file
  35. $logger "Retrieving user-data"
  36. $curl -o $user_data_file $instance_data_url/user-data 2>&1 | $logger
  37. if [ ! -s $user_data_file ]; then
  38.   $logger "No user-data available"
  39. elif head -1 $user_data_file | egrep -v '^#!'; then
  40.   $logger "Skipping user-data as it does not begin with #!"
  41. else
  42.   $logger "Running user-data"
  43.   echo "user-data has already been run on this instance" > $been_run_file
  44.   $user_data_file 2>&1 | logger -t "user-data"
  45.   $logger "user-data exit code: $?"
  46. fi
  47. rm -f $user_data_file