Arbitrary tweets made by TheGingerDog up to 30 November 2014
Continue reading “Automated twitter compilation up to 30 November 2014”
Linux, PHP, geeky stuff … boring man.
Arbitrary tweets made by TheGingerDog up to 30 November 2014
Continue reading “Automated twitter compilation up to 30 November 2014”
I found the following Python script online, but it didn’t really work too well :
http://aws-musings.com/manage-ebs-snapshots-with-a-python-script/
EBS – Elastic Block Storage …
I had to easy_install boto, to get it to work.
I’m not sure the Debian python-boto package in Lenny is up to date.
Anyway, $server now has :
123456789101112131415161718192021222324252627282930313233343536373839404142434445 from
boto.ec2.connection
import
EC2Connection
from
boto.ec2.regioninfo
import
RegionInfo
from
datetime
import
datetime
import
sys
# Substitute your access key and secret key here
aws_access_key
=
'MY_AWS_ACCESS_KEY'
aws_secret_key
=
'MY_AWS_SECRET_KEY'
# Change to your region/endpoint...
region
=
RegionInfo(endpoint
=
'eu-west-1.ec2.amazonaws.com'
, name
=
'eu-west-1'
)
if
len
(sys.argv) <
3
:
print
"Usage: python manage_snapshots.py volume_id number_of_snapshots_to_keep description"
print
"volume id and number of snapshots to keep are required. description is optional"
sys.exit(
1
)
vol_id
=
sys.argv[
1
]
keep
=
int
(sys.argv[
2
])
conn
=
EC2Connection(aws_access_key, aws_secret_key, region
=
region)
volumes
=
conn.get_all_volumes([vol_id])
print
"%s"
%
repr
(volumes)
volume
=
volumes[
0
]
description
=
'Created by manage_snapshots.py at '
+
datetime.today().isoformat(
' '
)
if
len
(sys.argv) >
3
:
description
=
sys.argv[
3
]
if
volume.create_snapshot(description):
print
'Snapshot created with description: '
+
description
snapshots
=
volume.snapshots()
snapshot
=
snapshots[
0
]
def
date_compare(snap1, snap2):
if
snap1.start_time < snap2.start_time:
return
-
1
elif
snap1.start_time
=
=
snap2.start_time:
return
0
return
1
snapshots.sort(date_compare)
delta
=
len
(snapshots)
-
keep
for
i
in
range
(delta):
print
'Deleting snapshot '
+
snapshots[i].description
snapshots[i].delete()
And then plonk something like the following in /etc/cron.daily/backup_ebs :
1 2 3 4 | for volume in vol-xxxx vol-yyyyy vol-zzzz do /path/to/above/python/script .py $volume 7 "Backup of $volume on $(date +%F-%H:%m)" done |
Which keeps 7 backups for each volume with a time/date stamp in each description.