umgehen Ich versuche, große Dateien über ssh zu streamen, und kann gerade Raw-Dateien gut streamen; als:Wie stdout von Befehl wie "mit open() als f:" in Python
with open('somefile','r') as f:
tx.send(filepath='somefile',stream=f.read())
tx eine höhere Instanz der Klasse ist, die ich habe, dass gerade fein auf diese Weise strömen kann, aber ich möchte in der Lage sein, Befehle zu verwenden, wie pv
, dd
und tar
auch streamen. Was ich brauche ist:
with run_some_command('tar cfv - somefile') as f:
tx.send(filepath='somefile',stream=f.read())
Dies würde stdout als Stream nehmen und in eine Remote-Datei schreiben. Ich habe versucht, etwas zu tun, wie:
p = subprocess.Popen(['tar','cfv','-','somefile'], stdout=subprocess.PIPE)
tx.send(filepath='somefile',stream=p.stdout.readall())
aber ohne Erfolg ... Ich habe für eine Weile googeln versuchen, ein Beispiel zu finden, aber kein Glück so weit. Jede Hilfe wäre sehr willkommen!