Überprüfen Sie, ob ein Verzeichnis remote vorhanden ist (Shell-Skript).

7

Gibt es eine Möglichkeit, festzustellen, ob auf einem Remote-Server ein Verzeichnis vorhanden ist?

Vielleicht gibt es einen besseren Weg, aber ich schreibe ein Anwendungsbereitstellungsskript und möchte ein Verzeichnis auf einem Remoteserver erstellen, wenn das Verzeichnis zum Platzieren der Dateien nicht vorhanden ist.

Danke im Voraus!


quelle

Antworten:

6

Sie können ssh verwenden, um ein Programm auf dem Remote-Host aufzurufen und testbestimmte Bedingungen zu testen.

if [[ `ssh [email protected] test -d /path/to/my/directory && echo exists` ]] ; then
    # put code in here
fi
Rory
quelle
2
Dies hat bei mir nicht funktioniert (wahrscheinlich wurden Ihre Backquotes verstümmelt). Ich habe verwendet if [[ `ssh [email protected] test -d /path/to/my/directory && echo exists` ]]und das hat funktioniert.
Chiborg
3

Benutz einfach

ssh remoteHost 'mkdir -p /whatever/your/dir/is'

Das Verzeichnis wird erstellt, wenn es noch nicht vorhanden ist.

Kim
quelle
1
Wenn Sie -pIhrem Befehl mkdir ein hinzufügen, wird kein Fehler gemeldet, wenn das Verzeichnis bereits vorhanden ist, und der gesamte Pfad wird erstellt.
Zoredache
Ich habe es hinzugefügt, aber es hängt davon ab, was genau er will. Jetzt kann er den Befehl nicht mehr in einer if-Anweisung verwenden.
Kim
3
mkdir -p

Aber wenn das nicht ganz das ist, wonach Sie suchen, können Sie die Existenz eines Verzeichnisses mit überprüfen

ssh user@host test -d /home && echo exists
ptman
quelle
1

Ich würde empfehlen, den RPM-Mechanismus zum Installieren Ihrer Anwendung zu verwenden, anstatt etwas Eigenes zu schreiben, da die Probleme, auf die Sie mit Ihrem eigenen Skript stoßen, mit ziemlicher Sicherheit bereits mit RPM gelöst wurden. Hier ist ein exzellentes Tutorial zu RPM.

gareth_bowles
quelle
0

Wie wollen Sie mit diesem Remote-Server sprechen? SSH, SMB, NFS, noch etwas? Normalerweise gibt es eine Möglichkeit, dieses Problem herauszufinden, aber Sie müssen wissen, welche Protokolle und Authentifizierungsoptionen Ihnen zur Verfügung stehen, bevor Sie genau wissen, wie dies zu tun ist.

Chopper3
quelle
Der Zugriff ist über SSH möglich, ich war mir jedoch nicht sicher, ob es ein anderes Tool gibt, mit dem ich das Verzeichnis erstellen kann.
Wenn Sie SSH haben, schreiben Sie einfach ein mkdir, wenn es existiert, schlägt es nur mit einem Fehler fehl.
Chopper3
Ja, nachdem ich einige Nachforschungen angestellt habe, werde ich es so machen. Ich bin eine Art Linux-Noob, daher wusste ich nicht, dass Sie ein Skript ausführen und Befehle weiterhin remote ausführen können.