ec2-automate-backup supports -c cron-primer mode for loading environment configuration.
This commit is contained in:
parent
18a97a7714
commit
b122dcfff8
|
@ -22,6 +22,7 @@ ec2-automate-backup requires one of the following two parameters be provided:
|
||||||
#
|
#
|
||||||
-r <region> - the region that contains the EBS volumes for which you wish to have a snapshot created.
|
-r <region> - the region that contains the EBS volumes for which you wish to have a snapshot created.
|
||||||
-s <selection_method> - the selection method by which EBS volumes will be selected. Currently supported selection methods are "volumeid" and "tag." The selection method "volumeid" identifies EBS volumes for which a snapshot should be taken by volume id whereas the selection method "tag" identifies EBS volumes for which a snapshot should be taken by a key=value format tag.
|
-s <selection_method> - the selection method by which EBS volumes will be selected. Currently supported selection methods are "volumeid" and "tag." The selection method "volumeid" identifies EBS volumes for which a snapshot should be taken by volume id whereas the selection method "tag" identifies EBS volumes for which a snapshot should be taken by a key=value format tag.
|
||||||
|
-c <cron_primer_file> - running with the -c option and a providing a file will cause ec2-automate-backup to source a file for environmental configuration - ideal for running ec2-automate-backup under cron. An example cron primer file is located in the "Resources" directory and is called cron-primer.sh.
|
||||||
-n - tag snapshots "Name" tag as well as description
|
-n - tag snapshots "Name" tag as well as description
|
||||||
-k <purge_after_days> - the period after which a snapshot can be purged. For example, running "ec2-automate-backup.sh -v "vol-6d6a0527 vol-636a0112" -k 31" would allow snapshots to be removed after 31 days. purge_after_days creates two tags for each volume that was backed up - a PurgeAllow tag which is set to PurgeAllow=true and a PurgeAfter tag which is set to the present day (in UTC) + the value provided by -k.
|
-k <purge_after_days> - the period after which a snapshot can be purged. For example, running "ec2-automate-backup.sh -v "vol-6d6a0527 vol-636a0112" -k 31" would allow snapshots to be removed after 31 days. purge_after_days creates two tags for each volume that was backed up - a PurgeAllow tag which is set to PurgeAllow=true and a PurgeAfter tag which is set to the present day (in UTC) + the value provided by -k.
|
||||||
-p - the -p flag will purge (meaning delete) all snapshots that were created more than "purge after days" ago. ec2-automate-backup looks at two tags to determine which snapshots should be deleted - the PurgeAllow and PurgeAfter tags. The tags must be set as follows: PurgeAllow=true and PurgeAfter=YYYY-MM-DD where YYYY-MM-DD must be before the present date.
|
-p - the -p flag will purge (meaning delete) all snapshots that were created more than "purge after days" ago. ec2-automate-backup looks at two tags to determine which snapshots should be deleted - the PurgeAllow and PurgeAfter tags. The tags must be set as follows: PurgeAllow=true and PurgeAfter=YYYY-MM-DD where YYYY-MM-DD must be before the present date.
|
||||||
|
|
11
ec2-automate-backup/Resources/cron-primer.sh
Normal file
11
ec2-automate-backup/Resources/cron-primer.sh
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#EC2_HOME required for EC2 API Tools
|
||||||
|
export EC2_HOME=/opt/aws/apitools/ec2
|
||||||
|
#JAVA_HOME required for EC2 API Tools
|
||||||
|
export JAVA_HOME=/usr/lib/jvm/jre
|
||||||
|
#export PATH=/bin is required for cut, date, grep
|
||||||
|
#export PATH=/opt/aws/bin/ is required for EC2 API Tools
|
||||||
|
#typical system path PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/bin
|
||||||
|
export PATH=/bin:/opt/aws/bin/
|
||||||
|
export AWS_ACCESS_KEY=<your_access_key>
|
||||||
|
export AWS_SECRET_KEY=<your_secret_key>
|
|
@ -139,9 +139,6 @@ purge_EBS_Snapshots()
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
#calls prerequisitecheck function to ensure that all executables required for script execution are available
|
|
||||||
prerequisite_check
|
|
||||||
|
|
||||||
app_name=`basename $0`
|
app_name=`basename $0`
|
||||||
|
|
||||||
#sets defaults
|
#sets defaults
|
||||||
|
@ -155,10 +152,11 @@ name_tag_create=false
|
||||||
#sets the Purge Snapshot feature to false - this feature will eventually allow the removal of snapshots that have a "PurgeAfter" tag that is earlier than current date
|
#sets the Purge Snapshot feature to false - this feature will eventually allow the removal of snapshots that have a "PurgeAfter" tag that is earlier than current date
|
||||||
purge_snapshots=false
|
purge_snapshots=false
|
||||||
#handles options processing
|
#handles options processing
|
||||||
while getopts :s:r:v:t:k:pn opt
|
while getopts :s:c:r:v:t:k:pn opt
|
||||||
do
|
do
|
||||||
case $opt in
|
case $opt in
|
||||||
s) selection_method="$OPTARG";;
|
s) selection_method="$OPTARG";;
|
||||||
|
c) cron_primer="$OPTARG";;
|
||||||
r) region="$OPTARG";;
|
r) region="$OPTARG";;
|
||||||
v) volumeid="$OPTARG";;
|
v) volumeid="$OPTARG";;
|
||||||
t) tag="$OPTARG";;
|
t) tag="$OPTARG";;
|
||||||
|
@ -169,6 +167,18 @@ while getopts :s:r:v:t:k:pn opt
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
#sources "cron_primer" file for running under cron or other restricted environments - this file should contain the variables and environment configuration required for ec2-automate-backup to run correctly
|
||||||
|
if [[ -n $cron_primer ]]
|
||||||
|
then if [[ -f $cron_primer ]]
|
||||||
|
then source $cron_primer
|
||||||
|
else
|
||||||
|
echo "Cron Primer File \"$cron_primer\" Could Not Be Found." 1>&2 ; exit 70
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#calls prerequisitecheck function to ensure that all executables required for script execution are available
|
||||||
|
prerequisite_check
|
||||||
|
|
||||||
#sets date variable
|
#sets date variable
|
||||||
date_current=`date -u +%Y-%m-%d`
|
date_current=`date -u +%Y-%m-%d`
|
||||||
#sets the PurgeAfter tag to the number of days that a snapshot should be retained
|
#sets the PurgeAfter tag to the number of days that a snapshot should be retained
|
||||||
|
|
Loading…
Reference in New Issue
Block a user