Manuelle Putty-Sitzung und Plink-Sitzung verhalten sich unterschiedlich

Manuelle Putty-Sitzung und Plink-Sitzung verhalten sich unterschiedlich

Hallo, ich verbinde mich von einem Windows-PC aus mit Putty mit einem Remote-Linux-Server und führe dort bestimmte Befehle aus. Ich möchte die Aufgaben mit Plink wie folgt automatisieren:

plink serveradress -l userid -pwd pass -batch "ls;cmd1"

Wenn ich die Befehle „ls;cmd1;cmd2“ manuell über Putty/Plink ausführe, funktioniert es einwandfrei. Wenn ich jedoch dasselbe über cmd.ext und den obigen Plink-Befehl mache, erhalte ich die Meldung „bash cmd1 nicht gefunden“. Der Befehl ls funktioniert jedoch einwandfrei.

Warum passiert das? PS: cmd1 ist kein eingebauter Linux-Befehl. Ich nehme an, er wurde speziell für den Server erstellt.

Wie kann ich das zum Laufen bringen?

Antwort1

Wenn Bash „Befehl nicht gefunden“ meldet, bedeutet dies, dass der Befehl cmd1nicht in gefunden werden kann $PATH. Sie müssen also entweder sicherstellen, dass der Pfad für cmd1immer in liegt $PATH, oder Sie müssen den vollständigen Pfadnamen für angeben cmd1:

plink serveradress -l userid -pwd pass -batch "ls;/where/you/can/find/cmd1"

Sie finden den vollständigen Pfadnamen which cmd1in Ihrer interaktiven Shell (die über Putty).

Sie können den Pfad in ~/.bashrcoder festlegen ~/.profile, d. h. die Datei .bashrc oder .profile in Ihrem Home-Verzeichnis.

Sie können den Pfad mit echo $PATHin Ihrer Putty-Sitzung oder mit plink serveradress -l userid -pwd pass -batch 'echo $PATH'(beachten Sie die einfachen Anführungszeichen) überprüfen. Wenn Sie beides tun, sollten Sie einen Unterschied sehen.

verwandte Informationen