mirror of
https://github.com/psy0rz/zfs_autobackup.git
synced 2025-04-11 22:40:01 +03:00
option to allow ignoring of transfer errors. this will still check if the filesystem was received. i used it to ignore a bunch of acltype property errors on smartos from proxmox.
This commit is contained in:
parent
bf37322aba
commit
fa405dce57
@ -329,12 +329,13 @@ def zfs_transfer(ssh_source, source_filesystem, first_snapshot, second_snapshot,
|
||||
source_proc.stdout.close() # Allow p1 to receive a SIGPIPE if p2 exits.
|
||||
target_proc.communicate()
|
||||
|
||||
if source_proc.returncode:
|
||||
raise(subprocess.CalledProcessError(source_proc.returncode, source_cmd))
|
||||
if not args.ignore_transfer_errors:
|
||||
if source_proc.returncode:
|
||||
raise(subprocess.CalledProcessError(source_proc.returncode, source_cmd))
|
||||
|
||||
#zfs recv sometimes gives an exitcode 1 while the transfer was succesfull, therefore we ignore exit 1's and do an extra check to see if the snapshot is there.
|
||||
if target_proc.returncode and target_proc.returncode!=1:
|
||||
raise(subprocess.CalledProcessError(target_proc.returncode, target_cmd))
|
||||
#zfs recv sometimes gives an exitcode 1 while the transfer was succesfull, therefore we ignore exit 1's and do an extra check to see if the snapshot is there.
|
||||
if target_proc.returncode and target_proc.returncode!=1:
|
||||
raise(subprocess.CalledProcessError(target_proc.returncode, target_cmd))
|
||||
|
||||
debug("Verifying if snapshot exists on target")
|
||||
run(ssh_to=ssh_target, cmd=["zfs", "list", target_filesystem+"@"+second_snapshot ])
|
||||
@ -626,6 +627,7 @@ parser.add_argument('--clear-refreservation', action='store_true', help='Set ref
|
||||
parser.add_argument('--clear-mountpoint', action='store_true', help='Sets canmount=noauto property, to prevent the received filesystem from mounting over existing filesystems. (recommended)')
|
||||
parser.add_argument('--filter-properties', action='append', help='Filter properties when receiving filesystems. Can be specified multiple times. (Example: If you send data from Linux to FreeNAS, you should filter xattr)')
|
||||
parser.add_argument('--rollback', action='store_true', help='Rollback changes on the target before starting a backup. (normally you can prevent changes by setting the readonly property on the target_fs to on)')
|
||||
parser.add_argument('--ignore-transfer-errors', action='store_true', help='Ignore transfer errors (still checks if received filesystem exists. usefull for acltype errors)')
|
||||
|
||||
|
||||
parser.add_argument('--test', action='store_true', help='dont change anything, just show what would be done (still does all read-only operations)')
|
||||
|
Loading…
x
Reference in New Issue
Block a user