Ich hatte viel Spaß daran, eine Lösung für dieses Problem zu finden. Es erfordert das Tool nc (netcat) auf beiden Computern und SSH (SFTP wird nicht benötigt).
In diesem Beispiel werde ich den Computer aufrufen, der die Daten enthält, die zum Sichern von Linux-a benötigt werden, und den Computer, der das Backup von Linux-b empfangen muss.
Lassen Sie Netcat unter Linux-a einen Port abhören (ich habe 2000 genommen) und leiten Sie ihn in eine Datei um. Dies wird einfach dort sitzen und warten, bis etwas an diesem Port durchkommt.
[kenny@linux-b /var/backups]$ nc -l 2000 > backup.tgz
Öffnen Sie unter Linux-B einen SSH-Tunnel zu Linux-A, ich habe wieder Port 2000 verwendet. Dadurch wird alles, was Sie auf TCP-Port 2000 auf localhost werfen, auf TCP-Port 2000 unter Linux-a umgeleitet, wo Netcat lauscht.
[kenny@linux-a /var/data]$ ssh -L 2000:localhost:2000 -CfN linux-b
Erstellen Sie nun das Tar-Archiv, senden Sie die Ausgabe jedoch an stdout (mit -) und leiten Sie sie zur Komprimierung an gzip weiter. Leiten Sie das nun an einen anderen Netcat weiter, der es an Localhost auf TCP auf Port 2000 sendet.
[kenny@linux-a /var/data]$ tar cf - important-data | gzip -fc | nc localhost 2000
Wir sind fertig! Unter Linux-b hört der Netcat nicht mehr zu und eine neue Datei wird erstellt. Das Beste daran ist, dass das Tar-Archiv nie auf der Festplatte von Linux-A abgelegt wurde.
[kenny@linux-b /var/backups]$ file backup.tgz
backup.tgz: gzip compressed data, from Unix, last modified: Thu Jul 5 13:48:03 2012
Ich weiß, dass es nicht genau das ist, wonach Sie in der Frage gefragt haben, aber wenn Sie Netcat zur Verfügung haben, ist es eine praktikable Lösung für Ihre Art von Problem.
Bearbeiten: Ich habe eines vergessen: Wenn Sie diese Anweisungen befolgen, haben Sie immer noch einen SSH-Tunnel unter Linux-a. Finden Sie heraus, wie die Prozess-ID lautet, und beenden Sie sie.
[kenny@linux-a /var/data]$ ps -ef | grep "ssh -L"
kenny 5741 1 0 13:40 ? 00:00:00 ssh -L 2000:localhost:2000 -CfN linux-b
kenny 5940 3360 0 14:13 pts/1 00:00:00 grep --color=auto ssh -L
[kenny@linux-a /var/data]$ kill 5741