2012-12-06 05:54:59 +0000 2012-12-06 05:54:59 +0000
20
20

Wie führe ich eine Befehlsdatei in PuTTY mit automatischer Anmeldung in einer Eingabeaufforderung aus?

Ich benutze Folgendes, um mich automatisch bei einem Remote-Server anzumelden und dann Befehle auszuführen, die in einer commands.txt aufgeführt sind, etwa so:

C:\path\to\putty.exe -load "[Sessionname]" -l [user] -pw [password] -m C:\path\to\commands.txt

commands.txt enthält Folgendes:

ps -elf|grep 'sometext'

Wenn ich dies versuche, erscheint ein neues Fenster für PuTTY, aber es schließt sich und wird sofort nach der Anmeldung beendet. Infolgedessen kann ich die Ausgabe des/der Befehle(s) nicht sehen.

Ich verstehe nicht, was hier vor sich geht. Liege ich mit meinem Ansatz falsch oder muss ich weitere Schritte unternehmen, damit das PuTTY-Fenster einige Zeit pausiert, bevor ich es verlasse?

Antworten (5)

11
11
11
2013-05-03 06:19:49 +0000

Zuerst müssten Sie eine separate Datei erstellen, die alle Befehle enthält, die ausgeführt werden sollen.

Beispiel: Ich möchte Drupal herunterladen und mit PuTTY auf meiner Domain installieren. Dazu müssen Sie:

Erstellen Sie zunächst eine .txt-Datei. Innerhalb dieser Datei befinden sich die Befehle. Meine sind: “ drush dl drupal” nächste Zeile, “drush si –account-name=[Kontoname] –account-pass=[account pass] –db-url=mysql://[user]:[pass]@localhost/[Datenbankname] –y

Nachdem Sie diese Datei gespeichert haben, erstellen Sie nun eine BAT -Datei oder geben Sie sie in der CMD-Eingabeaufforderung ein:

  • ssh. cmd
  • @echo on [damit Sie sehen können, was vor sich geht]
  • [Navigieren Sie zu Ihrer PuTTY-Installation. Meine ist:] cd C:\Programme\Putty
  • Start putty.exe -ssh [domain name] -l [username] -pw [password] -m [the directory of the .txt file you created which contains the codes you want to be executed]
11
11
11
2012-12-06 06:10:14 +0000

Sie sollten plink.exe (eine Befehlszeilenschnittstelle zu den PuTTY-Backends) verwenden und nicht putty.exe

Das erhalten Sie von der PuTTY-Downloadseite

Ohne plink:

Es scheint, dass die einzige Möglichkeit darin besteht, die -log <logfile>-Optionen zu verwenden und dann den Inhalt auszudrucken und zu löschen.

2
2
2
2012-12-06 11:38:36 +0000

Ihre Herangehensweise scheint gut zu sein, allerdings gibt es eine Standardeinstellung im Verhalten, die Ihnen hier Probleme bereitet und Sie wahrscheinlich glauben lässt, dass nichts passiert.

Wenn ich es jedoch versuche, erscheint ein neues Fenster für PuTTY, wird aber sofort nach der Anmeldung geschlossen und beendet

Ihre Sitzung endet unmittelbar nach der Ausführung des Befehls, und PuTTY schließt das Fenster standardmäßig. Lesen Sie in der Dokumentation zu PuTTY nach, wie Sie dieses Verhalten für Ihre Sitzung ändern können.

4.1.3 `Close Window on Exit'

   Finally in the Session panel, there is an option labelled `Close
   Window on Exit'. This controls whether the PuTTY terminal window
   disappears as soon as the session inside it terminates.
2
2
2
2015-05-02 10:13:57 +0000

Es gäbe kein Problem, wenn Sie nur die Batch-Datei zum Öffnen des Unix-Rechners erstellen wollten. Nachfolgend das Beispiel:

"PuTTY path" -ssh machinename -l username -pw password

Der PuTTY-Pfad sollte in doppelten Anführungszeichen stehen, wie “C:\Program Files\putty\putty.ext”

machinename = Maschinenname ohne Anführungszeichen

password = mit Anführungszeichen

0
0
0
2014-05-13 09:11:23 +0000

Zusätzlich zur Antwort von Aviram:

Nachfolgend sehen Sie ein Beispiel, wie Sie PuTTY-Befehle von der Eingabeaufforderung aus ausführen:

  • Gehen Sie zuerst in das PuTTY-Installationsverzeichnis, zum Beispiel C:\Program Files\PuTTY, und führen Sie dann den folgenden Befehl aus: