Lass mich das mal klarstellen:
- localIP möchte die Dateien in / home / localuser / Desktop / MessageFolder /
- die gewünschten Dateien befinden sich auf IP2 unter / var / log / message *
- Die einzige Möglichkeit, auf IP2 zuzugreifen, ist von IP1
Sie müssen sich mit ssh / scp mit Schlüsseln anstelle von Passwörtern befassen, wie in https://wiki.archlinux.org/index.php/SSH_keys beschrieben . Ich würde auch empfehlen, den root-Benutzer für diese grundlegende Operation nicht zu verwenden.
Unter der Annahme, dass diese Annahmen korrekt sind, können Sie die Tunneling-Fähigkeit von SSH verwenden, so dass der localIP-Computer ssh / scp in 127.0.0.1:SomeUnusedPort verwenden kann, um zu IP2 zu gelangen. Der schwierigste Teil wird sein, zu wissen, wann der localIP-Rechner vom IP1-Rechner getrennt wird.
Dies ist ein kurzer Codeblock für das, was ich denke. Seien Sie sich bewusst, ich habe das überhaupt nicht getestet.
IP1=192.168.10.10 IP2=192.168.10.9 SomeUnusedPortOnLocalIP=2209 ssh -L $SomeUnusedPortOnLocalIP $IP2:22 root@$IP1 "while [ ! -f /tmp/disconLocalIP.now ]; do sleep 2; done; rm /tmp/disconLocalIP.now " & # connects to IP1 establishing an ssh tunnel between localIP and IP2 # the loop testing for the existence of a file to let it know when to disconnect # the & symbol lets the command run in the background and the script to continue with it still running # wait for the connection to actually establish fully before proceeding. sleep 10 # connect to port tunnel on localIP to get files from IP2 scp -P $SomeUnusedPortOnLocalIP root@$127.0.0.1:/var/log/message* /home/localuser/Desktop/MessageFolder/ scp -P $SomeUnusedPortOnLocalIP root@$127.0.0.1:/var/log/log* /home/localuser/Desktop/OtherLogs/ # put file on IP1 to tell loop to end and exit previous ssh session ssh root@$IP1 "touch /tmp/disconLocalIP.now"