From 84d44a267a709a5034a297d6c0be1fb6636f67e1 Mon Sep 17 00:00:00 2001 From: Marius van Witzenburg Date: Thu, 5 Apr 2018 09:23:59 +0200 Subject: [PATCH] Exit persistent connection when everything is finished --- zfs_autobackup | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/zfs_autobackup b/zfs_autobackup index 17eb8f1..f981f86 100755 --- a/zfs_autobackup +++ b/zfs_autobackup @@ -611,6 +611,17 @@ def zfs_autobackup(): verbose("Destroying old snapshots on target {0}:\n{1}".format(args.ssh_target, "\n".join(target_destroys))) zfs_destroy_snapshots(ssh_to=args.ssh_target, snapshots=target_destroys) + if args.ssh_source != "local": + verbose("Disconnect ssh_source") + code=run(test=args.test, valid_exitcodes=[0, 255], return_exitcode=True, cmd=[ "ssh", "-o", "ControlPath=~/.ssh/control-master-%r@%h:%p", "-O", "check", args.ssh_source ]) + if code == 0: + code=run(test=args.test, valid_exitcodes=[0, 255], cmd=[ "ssh", "-o", "ControlPath=~/.ssh/control-master-%r@%h:%p", "-O", "exit", args.ssh_source ]) + + if args.ssh_target != "local": + verbose("Disconnect ssh_target") + code=run(test=args.test, valid_exitcodes=[0, 255], return_exitcode=True, cmd=[ "ssh", "-o", "ControlPath=~/.ssh/control-master-%r@%h:%p", "-O", "check", args.ssh_target ]) + if code == 0: + run(test=args.test, valid_exitcodes=[0, 255], cmd=[ "ssh", "-o", "ControlPath=~/.ssh/control-master-%r@%h:%p", "-O", "exit", args.ssh_target ]) verbose("All done")