X-Git-Url: https://git.siccegge.de//index.cgi?p=tools.git;a=blobdiff_plain;f=backup-zfs;h=4ebb78bc9bd292b4d23e89c763f8c9fbd33ad9d8;hp=49c16566c2502cfc45dadc62a523a5c83492f3ee;hb=HEAD;hpb=4abb5d1a4e910e698b98f03b00f313b2743e8d53 diff --git a/backup-zfs b/backup-zfs index 49c1656..4ebb78b 100755 --- a/backup-zfs +++ b/backup-zfs @@ -10,7 +10,7 @@ SFTP_DIR = '/srv/backup/mitoraj' SFTP_USER = 'root' ZPOOL = 'base' GPGUSER = '9FED5C6CE206B70A585770CA965522B9D49AE731' -BUFFER = 1024 * 1024 +BUFFER = 4 * 1024 * 1024 # #################### @@ -58,8 +58,8 @@ def sftp_connect(): agent = paramiko.Agent() transport = paramiko.Transport((SFTP_HOST, 22), - default_window_size=1024*BUFFER, - default_max_packet_size=64*BUFFER) + default_window_size=128*BUFFER, + default_max_packet_size=BUFFER) # transport.max_packet_size = BUFFER # transport.window_size = BUFFER * 64 transport.connect(hostkey=hostkey) @@ -107,8 +107,10 @@ def sftp_send(dataset, reference=None): print_colored("Error:\n\n" + gpg.stderr, 'red') return + lastflush = 0 with open('/tmp/SHA256SUM', 'a') as digestfile: with sftp.open(filename, 'xw', BUFFER) as remotefile: + remotefile.set_pipelined() digest = hashlib.sha256() sys.stdout.write(term['purple']) done = 0 @@ -125,6 +127,11 @@ def sftp_send(dataset, reference=None): sys.stdout.write(" \r%s %.3f GB (%.3f MB/s)" % (term['green'], (1.0 * done) / (1024 ** 3), (done / (1024 ** 2 *(time.time() - startt))))) sys.stdout.flush() remotefile.write(junk) + + if done - lastflush > 128 * 1024**2: + remotefile.flush() + lastflush = done + digest.update(junk) junk = gpg.stdout.read(BUFFER)