Cronjob Snapshot Script for openATTIC
This is the continuation of my last blog post Snapshot Python script with authtoken. I expanded the script a little bit, because I don't want to create the snapshots manually every day and I also want to store the last 10 snapshots.
You can change the maxsnaps variable to adjust the number of stored snapshots.
Snapshot Script:
#!/usr/bin/env python
import requests
import json
import datetime
token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
headers = {'content-type': 'application/json',
"Authorization": "Token %s" %token}
currentime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')
maxsnaps = 10
### recorded command 1
data=json.dumps({
"volumeId": 615,
"name": currentime,
"megs": 4577
})
requests.post("http://openattic.yourdomain.com/openattic/api/volumes/615/snapshots", data=data, headers=headers)
snaps = requests.get("http://openattic.yourdomain.com/openattic/api/volumes/615/snapshots?ordering=createdate", headers=headers)
snaps = snaps.json()
if len(snaps["results"]) > maxsnaps:
delete_amount = snaps["count"] - maxsnaps
if delete_amount > 0:
for i in range(0, delete_amount):
oldest = snaps["results"][i]
print "DELETE oldest %s" % oldest["id"]
requests.delete("http://openattic.yourdomain.com/openattic/api/snapshots/%s" % oldest["id"], headers=headers)
Now you can create a normal cronjob.
A special thanks goes to Tatjana Dehler.
Comments