Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Kommando als Parameter an ssh übergeben

  1. #1
    Registrierter Benutzer
    Registriert seit
    Jan 2002
    Beiträge
    127

    Kommando als Parameter an ssh übergeben

    Hallo,

    ich möchte innerhalb eines Skriptes per ssh auf einem anderen Rechner mehrere Befehle ausführen (PubKeyAuth ist eingerichtet). Die Probleme treten bei der Verwendung von "[" und "]" zum Testen auf und beim Zusammenfassen mehrerer Kommandos per "{" und "}".

    Mein Aufruf z.B.
    Code:
    user1@host1:~# ssh -luser2 host2 "[ -r 'dir' ] || { mkdir dir; chmod 700 dir; }"
    [: Command not found.
    {: Command not found.
    chmod: failed to get attributes of `gaga': No such file or directory
    }: Command not found.
    user1@host1:~#
    Führe ich das den Befehl aber direkt auf host2 aus, funktioniert alles perfekt:
    Code:
    user2@host2:~# [ -r 'dir' ] || { mkdir dir; chmod 700 dir; }
    user2@host2:~#
    Aus irgendwelchen Gründen will er die Klammern als Befehle interpretieren, und ich komm nicht dahinter, was das soll.

    Bitte helft mir

    gruß Chris

  2. #2
    none Avatar von irbaboon
    Registriert seit
    Aug 2004
    Beiträge
    306
    probier mal die klammern zu escapen ... also ein \ vor jede klammer vielleicht hilfst ???
    FUBAR = „Fu cked Up Beyond All Repair“

    ein experte ist ein mann, der hinterher genau sagen kann, warum seine prognose nicht gestimmt hat.
    -winston churchill-

    BOFH Excuses

  3. #3
    Registrierter Benutzer
    Registriert seit
    Jan 2002
    Beiträge
    127
    nein, das ändert leider gar nichts.

  4. #4
    Roger Wilco
    Gast
    Funktioniert denn folgendes?
    Code:
    ssh -luser2 host2 "test -r 'dir' || ( mkdir dir; chmod 700 dir; )"

  5. #5
    Registrierter Benutzer
    Registriert seit
    Jan 2002
    Beiträge
    127
    Danke dir!

    Dass ich da nicht selber draufgekommen bin


    Ich hab aber gleich noch ein neues Problem geschaffen. Und zwar folgendes:
    Code:
    user1@host1:~# ssh -luser2 host2 "ls; exit; echo hallo;"
    datei1
    datei2
    datei3
    hallo
    user1@host1:~#
    Warum wird das exit nicht berücksichtigt?
    Diese eigenartige Shell ist übrigens die sh einer Solaris-Maschine, die verhält sich schon komisch... die GNU-sh macht das richtig.
    Wenn ich das "exit" durch "logout" ersetze, bringt er mir die Fehlermeldung "Not a login shell" und bricht wie gewünscht ab.
    Mich würd echt interessieren, was das alles zu bedeuten hat...

Ähnliche Themen

  1. Postfix & Cyrus-Imap
    Von nr8 im Forum Linux als Server
    Antworten: 22
    Letzter Beitrag: 14.06.06, 17:03
  2. Sambaserver in der Dreambox taucht nicht in der Netzwerkumgebung auf
    Von fuchs im Forum Linux in heterogenen Netzen
    Antworten: 11
    Letzter Beitrag: 07.02.06, 11:46
  3. Postfix + Dyndns hilfe
    Von ghost77 im Forum Linux als Server
    Antworten: 11
    Letzter Beitrag: 15.09.04, 12:38
  4. Problem mit Postfix
    Von Caris im Forum Linux als Server
    Antworten: 7
    Letzter Beitrag: 30.07.04, 22:04
  5. g++ und licq
    Von Ypsilon im Forum Kompilieren von Kernel und Sourcen
    Antworten: 4
    Letzter Beitrag: 17.07.02, 21:55

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •