diff --git a/mongodb_consistent_backup/Archive/Tar/Tar.py b/mongodb_consistent_backup/Archive/Tar/Tar.py index 5f698db2..4978276b 100644 --- a/mongodb_consistent_backup/Archive/Tar/Tar.py +++ b/mongodb_consistent_backup/Archive/Tar/Tar.py @@ -26,7 +26,7 @@ class Tar(Task): def __init__(self, manager, config, timer, base_dir, backup_dir, **kwargs): super(Tar, self).__init__(self.__class__.__name__, manager, config, timer, base_dir, backup_dir, **kwargs) self.compression_method = self.config.archive.tar.compression - self.binary = "tar" + self.binary = self.config.archive.tar.binary self._pool = None self._pooled = [] diff --git a/mongodb_consistent_backup/Archive/Tar/TarThread.py b/mongodb_consistent_backup/Archive/Tar/TarThread.py index fc47f1e0..ff6d9f10 100644 --- a/mongodb_consistent_backup/Archive/Tar/TarThread.py +++ b/mongodb_consistent_backup/Archive/Tar/TarThread.py @@ -32,12 +32,13 @@ def run(self): backup_base_name = os.path.basename(self.backup_dir) log_msg = "Archiving directory: %s" % self.backup_dir - cmd_flags = ["-C", backup_base_dir, "-cf", self.output_file, "--remove-files", backup_base_name] + cmd_flags = ["-C", backup_base_dir, "-c", "-f", self.output_file, "--remove-files"] if self.do_gzip(): - log_msg = "Archiving and compressing directory: %s" % self.backup_dir - cmd_flags = ["-C", backup_base_dir, "-czf", self.output_file, "--remove-files", backup_base_name] + log_msg = "Archiving and compressing directory: %s" % self.backup_dir + cmd_flags.append("-z") + cmd_flags.append(backup_base_name) logging.info(log_msg) self.running = True self._command = LocalCommand(self.binary, cmd_flags, self.verbose) diff --git a/mongodb_consistent_backup/Archive/Tar/__init__.py b/mongodb_consistent_backup/Archive/Tar/__init__.py index 63e733f8..1c9bc69b 100644 --- a/mongodb_consistent_backup/Archive/Tar/__init__.py +++ b/mongodb_consistent_backup/Archive/Tar/__init__.py @@ -2,6 +2,8 @@ def config(parser): + parser.add_argument("--archive.tar.binary", dest="archive.tar.binary", default='tar', type=str, + help="Path to tar binary (default: tar)") parser.add_argument("--archive.tar.compression", dest="archive.tar.compression", help="Tar archiver compression method (default: gzip)", default='gzip', choices=['gzip', 'none']) parser.add_argument("--archive.tar.threads", dest="archive.tar.threads", diff --git a/mongodb_consistent_backup/Upload/Rsync/Rsync.py b/mongodb_consistent_backup/Upload/Rsync/Rsync.py index 6c7d1e0d..d0580caa 100644 --- a/mongodb_consistent_backup/Upload/Rsync/Rsync.py +++ b/mongodb_consistent_backup/Upload/Rsync/Rsync.py @@ -56,7 +56,7 @@ def init(self): def rsync_info(self): if not self._rsync_info: output = check_output([self.rsync_binary, "--version"]) - search = re.search("^rsync\s+version\s([0-9.-]+)\s+protocol\sversion\s(\d+)", output) + search = re.search(r"^rsync\s+version\s([0-9.-]+)\s+protocol\sversion\s(\d+)", output) self.rsync_version = search.group(1) self._rsync_info = {"version": self.rsync_version, "protocol_version": int(search.group(2))} return self._rsync_info