From: Stefan Huber Date: Mon, 14 May 2012 18:43:01 +0000 (+0200) Subject: write log file and print tar's stderr afterwards X-Git-Tag: v1.0~9 X-Git-Url: https://git.sthu.org/?a=commitdiff_plain;h=b0553016f0eca89d335a3a95303cb371577ba621;p=sitarba.git write log file and print tar's stderr afterwards --- diff --git a/TODO.txt b/TODO.txt index 2488c32..e69de29 100644 --- a/TODO.txt +++ b/TODO.txt @@ -1,4 +0,0 @@ -- print size in list -- remember tar commands -- ask to proceed when making backup -- print and log exit code and stderr of tar afterwards diff --git a/shbackup b/shbackup index 17bd331..239dfa3 100755 --- a/shbackup +++ b/shbackup @@ -249,7 +249,7 @@ class BackupManager: - def backupFileSet(self, fileset, targetdir, since=None): + def backupFileSet(self, fileset, targetdir, log, since=None): """Create an archive for given fileset at given target directory.""" print("Running file set: " + fileset.name) @@ -266,11 +266,15 @@ class BackupManager: tarargs = [tarpath] + taropts + ["-f", fsfn] + fileset.dirs #print("tarargs: ", tarargs) - tarp = subprocess.Popen( tarargs ) + print("tar call: " + " ".join(tarargs), file=log) + tarp = subprocess.Popen( tarargs, stderr=subprocess.PIPE ) rett = tarp.wait() if rett != 0: - print(tarpath + " returned with exit status " + str(rett) + ":") + sys.stderr.write( tarp.stderr.read() ) + msg = tarpath + " returned with exit status " + str(rett) + "." + print(msg) + print(msg, log) def backup(self, epoch=None, mode=None): @@ -328,9 +332,15 @@ class BackupManager: os.mkdir( targetdir ) + log = open(os.path.join(targetdir, "log.log"), 'w') + print("Started: " + now.ctime(), file=log) + # Backup all file sets for s in self.conf.sets: - self.backupFileSet(s, targetdir, since) + self.backupFileSet(s, targetdir, log, since) + + print("Stopped: " + datetime.datetime.now().ctime(), file=log) + log.close() # Rename backup directory to final name os.rename( targetdir, os.path.join(basedir, dirname) ) @@ -342,6 +352,7 @@ class BackupManager: f.close() + def prune(self): """Prune old backup files"""