From adb576dde16cbc3f6f0a61794a532a9487f63084 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 23 May 2016 19:46:14 +0200 Subject: [PATCH] patch from cyberdo, take host argument for single shot run --- butterbackup.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/butterbackup.py b/butterbackup.py index 210f849..99cf3c7 100755 --- a/butterbackup.py +++ b/butterbackup.py @@ -71,16 +71,22 @@ class BackupRunner(): print("No config found", self.config_dir) sys-exit(-1) - def run(self): - self.hosts = os.listdir(self.config_dir) + def run(self, hostlist=None): + self.hosts = hostlist or os.listdir(self.config_dir) for host in self.hosts: if host == 'default.cfg': continue try: + configfile = os.path.join(self.config_dir, host) + + if not os.path.exists(configfile): + # Trigger logging in the except clause + raise BaseException() + config = configparser.ConfigParser(strict=False) config.read_file(open(os.path.join(self.config_dir, 'default.cfg'),'r')) - config.read(os.path.join(self.config_dir, host)) + config.read(configfile) except BaseException as ex: print("Config error for %s. Skipping host."%host) continue @@ -93,5 +99,9 @@ if __name__ == "__main__": print("You need to be root. Otherwise all permissions will be lost.") sys.exit(-1) br = BackupRunner("/etc/butterbackup") - br.run() + + hostlist = sys.argv[1:] + br.run(hostlist=hostlist) + sys.exit(0) + -- 2.39.2