Das Problem ist folgendes: Ich möchte Dateien von einem Remotecomputer kopieren.
Ich suche nach einer Möglichkeit, ein Shell-Skript zu schreiben, das eine Verbindung zum Remote-Computer herstellt, den Speicherort der gespeicherten Datei abruft, sobald der Standort vom Remote-Server getrennt wird, und scp vom lokalen Computer mit dem erhaltenen Speicherort zu verwendet Kopieren Sie die Datei.
Insbesondere möchte ich wissen, wie ich über ein Skript eine Verbindung zu einem Remotecomputer herstellen und Aufgaben auf diesem Computer ausführen kann. Trennen Sie die Verbindung und setzen Sie die Ausführung lokal fort.
Sie können ein Skript im folgenden Format schreiben:
Sie müssen SSH-Schlüssel einrichten, um
command3
ausgeführt zu werden, ohne Sie zur Eingabe eines Kennworts aufzufordern.quelle
ssh user@remote command3
läuft,command4
kann nicht startenssh user@machine command3 &
Ich gehe davon aus, dass Sie bereits eine Vorstellung davon haben, wie Sie die Datei identifizieren, die Sie kopieren möchten, und dass Sie ein Skript oder eine Reihe von Befehlen schreiben können oder bereits geschrieben haben, die auf dem Remotecomputer ausgeführt werden, der diese Identifizierung vornimmt .
Außerdem gehe ich davon aus, dass diese Befehle in der Standardausgabe den vollständigen Pfad zur Datei oder den relativen Pfad zur Datei relativ zum Ausgangsverzeichnis des SSH-Benutzers drucken, der für die Kopie verwendet wird. In meinem Beispiel lautet der Name des Skripts "getfilepath.sh", obwohl es sich nicht um ein Shell-Skript handeln muss, sondern um eine andere ausführbare Datei oder sogar eine Reihe von Befehlen.
Im obigen Code ist die Notation "$ ()" eine Möglichkeit, die Standardausgabe eines Befehls als Shell-Variable zu erfassen. Es ist ziemlich normal, aber wenn Sie eine Shell verwenden, die es nicht versteht, können Sie den Befehl stattdessen mit "Back-Ticks" umgeben, die bei den meisten US-Tastaturen die Akzentzeichen links von der 1-Taste darstellen.
quelle
Möglicherweise ist es möglich, eine geplante Aufgabe auf dem Remotecomputer auszulösen, die die gesamte Arbeit erledigt.
Dies würde verhindern, dass Sie mit dem Remotecomputer verbunden werden, während Sie den Speicherort der Dateien suchen, die Sie kopieren möchten.
Ich mache das:
Die Befehlszeile löst eine geplante Aufgabe aus, die in meinem Fall ein Batchskript ausführt.
Freundliche Grüße
quelle