Ü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!

Antworten:


6

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

if [[ `ssh user@example.com test -d /path/to/my/directory && echo exists` ]] ; then
    # put code in here
fi

2
Dies hat bei mir nicht funktioniert (wahrscheinlich wurden Ihre Backquotes verstümmelt). Ich habe verwendet if [[ `ssh user@example.com 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.


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

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.


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.


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.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.