Add ignore support and logging master
authorDavid Bartley <dtbartle@csclub.uwaterloo.ca>
Thu, 17 Apr 2008 10:24:26 +0000 (06:24 -0400)
committerDavid Bartley <dtbartle@csclub.uwaterloo.ca>
Thu, 17 Apr 2008 11:42:56 +0000 (07:42 -0400)
snapshot-rotate.py

index fbc2ef2..6e52b2d 100755 (executable)
@@ -1,19 +1,22 @@
 #!/usr/bin/python
-import sys, re
+import sys, re, time
 from zfs import *
 
-verbose = True
+verbose = False
 
-if len(sys.argv) != 4:
-    print "Usage: snapshot-rotate.py zpool name number"
+if len(sys.argv) < 4:
+    print "Usage: snapshot-rotate.py zpool name number [ignore-datasets...]"
     sys.exit(0)
 zpool = sys.argv[1]
 name = sys.argv[2]
 number = int(sys.argv[3])
+ignore = sys.argv[4:]
 
 # iterate over all filesystems
 snapre = re.compile("%s\.([0-9]+)" % re.escape(name))
 for fs in zfs_list(zpool, 'filesystem'):
+    if fs in ignore:
+        continue
 
     # delete old snapshots, and note snapshots to be moved
     snaps = zfs_list("%s/%s" % (zpool, fs), 'snapshot')
@@ -52,3 +55,8 @@ for fs in zfs_list(zpool, 'filesystem'):
         zfs_snapshot("%s/%s@%s.0" % (zpool, fs, name))
     except ZfsException, zfs:
         print zfs.err
+
+# write log
+log = open("/var/log/snapshot-rotate.log", "w")
+cur_time = time.strftime("%Y/%m/%d %H:%M:%S", time.localtime())
+log.write("%s: Done %s snapshot.\n" % (cur_time, name))