]> git.frykholm.com Git - butterbackup.git/blobdiff - butterbackup.py
Applied patch from tuttle@somsants.net.
[butterbackup.git] / butterbackup.py
index 99cf3c70ace4e298e815f88abd558f91a86ae997..110077c1065fe23c9726306a3fd84f5e74107425 100755 (executable)
@@ -29,13 +29,20 @@ class Host():
                 return() 
             
         command = ("rsync -a --acls --xattrs --whole-file --numeric-ids --delete --delete-excluded --human-readable --inplace ")
-        excludes = " --exclude " + " --exclude ".join(self.config.get("host", "exclude").split(',')) #FIXME
+        if self.config.has_option("host", "include"):
+            includes = " --include " + " --include ".join(self.config.get("host", "include").split(',')) #FIXME
+            command = command + includes
+        if self.config.has_option("host", "exclude"):
+            excludes = " --exclude " + " --exclude ".join(self.config.get("host", "exclude").split(',')) #FIXME
+            command = command + excludes
         try:
-            print(command + excludes + " root@%s:/ "%(self.name) + self.subvol_dir)
-            check_call(shlex.split(command + excludes + " root@%s:/ "%(self.name) + self.subvol_dir))
+            print(command + " root@%s:/ "%(self.name) + self.subvol_dir)
+            check_call(shlex.split(command + " root@%s:/ "%(self.name) + self.subvol_dir))
         except CalledProcessError as ex:
-            if ex.returncode not in (12, 30):
-                print("Rsync did not transfer anything from %s, skipping snapshot."%self.name)
+            if ex.returncode in (24,):
+                pass
+            else:
+                print("Rsync error from %s, skipping snapshot. Rsync exit value=%s"%(self.name, ex.returncode))
                 return()
         todays_date = datetime.datetime.now().date().strftime("%F")
         if os.path.exists(os.path.join(self.host_dir, todays_date)):