Frage

Ich habe eine Anwendung, die Befehle auf einem Linux-Server über SSH führt nur in Ordnung. Wenn ich zu einem Solaris-Server verbinden, die Dinge funktionieren nicht. Es scheint, dass die Solaris-Befehlszeile auf 267 Zeichen beschränkt ist.

Gibt es eine Möglichkeit, dies zu ändern?

Update: Wie zuvor erwähnt, ist dies eine Grenze für die Standard-Shell für Solaris (sh) vs Linux (bash). So, jetzt ist die Frage, ist es eine Möglichkeit, die Grenze für sh zu ändern?

War es hilfreich?

Lösung

Ich glaube, (kann jedoch falsch sein), dass auf den Standard-Shell auf Dir eine Verbindung in engen Zusammenhang steht. Wenn Sie die Änderung auf Solaris auf die gleiche Shell machen Sie unter Linux verwenden, dass das Problem nicht beheben kann?

Bitte kommentieren, wenn es ein besserer Weg zu einer Lösung ist, und ich werde die Änderung in meiner Antwort machen.

Andere Tipps

Sie können Sie aktuelle Befehlslänge maximal mit diesem Befehl finden Sie unter:

$ getconf ARG_MAX
1048320

Ich habe ein Skript erstellt, das kann die maximale Länge eines Remote-Befehl bestimmen . Als Craig vorgeschlagen, Ihre beste Wette ist, um Rohr in der Norm der Befehl, ob das eine Option ist.

Wie ich es sehe, haben Sie folgende Möglichkeiten:

  1. Ändern, die Sie auf Solaris verwenden Shell, indem Sie den Standardwert für den Benutzer zu ändern.
  2. Sie ändern die Schale nicht, aber die Art und Weise Sie die Befehle ausführen ändern.

Die erste ist einfach, erfordert aber ein Administrator eine Änderung für jeden Benutzer / Maschinenkombination zu machen, und andere Programme beeinflussen können. Ändern der Art und Weise Sie Befehle ausführen, wird schneller und einfacher auf lange Sicht zu erhalten. Als ein Beispiel: Angenommen, Sie folgend ausführen müssen:

/usr/bin/foo with a very long list of options and parameters

Im Moment sind Sie wahrscheinlich etwas zu tun, wie folgt aus:

ssh user@machine "/usr/bin/foo with a very long list of options and parameters"

Aber Sie könnten Sie wie folgt statt:

echo "/usr/bin/foo with a very long list of options and parameters" | \
ssh user@machine "/bin/bash"

Das wird tun, was Sie wollen.

Wenn ich konfigurieren laufen unter Solaris 10 und das Configure-Skript kommt mit einem Wert für die Länge der Befehlszeile auf, die Antwort ist normalerweise in der 256 KB-Bereich. Der Standard-Shells auf Solaris sicherlich keine Grenze unter 300 Byte hat.

Das heißt, ich bin nicht sicher, was dein Problem ist. Ich könnte eine Vermutung an der Solaris SSH Gefahren eine kürzere Grenze mit -. Ich nicht dem Problem festgestellt habe, aber ich neige SSH als eine Möglichkeit, zu verwenden, um direkt zu verbinden (interaktiv), anstatt lange Befehle ausführen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top