diff --git a/core/backup.py b/core/backup.py index 98ccd0ee..52154a2d 100644 --- a/core/backup.py +++ b/core/backup.py @@ -444,14 +444,17 @@ def backup_do(base_backup_dir, files_to_backup, passphrase, running_backup_operation.processes_to_kill_on_cancel.append(vmproc) else: # Prepare the backup target (local file) - backup_target = base_backup_dir + "/qubes-{0}". \ - format(time.strftime("%Y-%m-%dT%H%M%S")) + if os.path.isdir(base_backup_dir): + backup_target = base_backup_dir + "/qubes-{0}". \ + format(time.strftime("%Y-%m-%dT%H%M%S")) + else: + backup_target = base_backup_dir - # Create the target directory - if not os.path.exists (base_backup_dir): - raise QubesException( - "ERROR: the backup directory {0} does not exists". - format(base_backup_dir)) + # Create the target directory + if not os.path.exists (os.path.dirname(base_backup_dir)): + raise QubesException( + "ERROR: the backup directory for {0} does not exists". + format(base_backup_dir)) # If not APPVM, STDOUT is a local file backup_stdout = open(backup_target,'wb') diff --git a/qvm-tools/qvm-backup b/qvm-tools/qvm-backup index 73137ae8..60d70f24 100755 --- a/qvm-tools/qvm-backup +++ b/qvm-tools/qvm-backup @@ -107,7 +107,10 @@ def main(): if not options.appvm: appvm = None - stat = os.statvfs(base_backup_dir) + if os.path.isdir(base_backup_dir): + stat = os.statvfs(base_backup_dir) + else: + stat = os.statvfs(os.path.dirname(base_backup_dir)) backup_fs_free_sz = stat.f_bsize * stat.f_bavail print if (total_backup_sz > backup_fs_free_sz):