Jak uruchomić plik poleceń w PuTTY przy użyciu automatycznego logowania w wierszu polecenia?

20

Korzystam z poniższych danych, aby automatycznie zalogować się do zdalnego serwera, a następnie uruchomić polecenia wymienione w commands.txt:

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

commands.txt zawiera następujące elementy:

ps -elf|grep 'sometext'

Jednak gdy próbuję to zrobić, pojawia się nowe okno PuTTY, ale zamyka się i wychodzi natychmiast po zalogowaniu. W rezultacie nie widzę danych wyjściowych poleceń.

Nie rozumiem o co tu chodzi. Czy mylę się w swoim podejściu, czy muszę podjąć dodatkowe kroki, aby okno PuTTY zatrzymało się na jakiś czas przed wyjściem?

Peter Mortensen
źródło
2
Rozważ użycie zamiast tego Plink.exe (zazwyczaj dołączonego do Putty, pamiętaj o dołączeniu do PATH). Spędziłem 2 godziny na wyszukiwaniu, jak podać klucz rsa w wierszu polecenia PuTTY, ponieważ nie jest bezpieczne dla haseł kodu. Pominąłem rozwiązanie Plink, ponieważ myślałem, że połączenie musi zaczynać się od kitu. Sprawdź odpowiedź poniżej wspominając o Plink. np. `Plink.exe -ssh host -l użytkownik -ic: \ Users \ moja nazwa \ .ssh \ myGeneratedPuttyKey.ppk
Soren Havelund Welling

Odpowiedzi:

11

Powinieneś używać plink.exe(interfejs wiersza poleceń zaplecza PuTTY), a nieputty.exe

Otrzymasz to ze strony pobierania PuTTY

Bez plink:

Wydaje się, że jedynym sposobem jest skorzystanie z -log <logfile>opcji, a następnie wydrukowanie jego zawartości i usunięcie.

Aviram Segal
źródło
Nie mogę używać interfejsu plink ani innych interfejsów wiersza poleceń. Czy jest na to inny sposób
2
@supportpb „Nie mogę korzystać z łącza Plink” - dlaczego? co się stanie, jeśli spróbujesz?
gertvdijk
1
@gertvdijk dzieje się tak, że zostaje zwolniony za używanie niezatwierdzonego oprogramowania na komputerach korporacyjnych ...
Torben Gundtofte-Bruun
nieobsługiwana opcja:-log
Allan Bowe
10

Najpierw musisz utworzyć osobny plik zawierający wszystkie polecenia, które chcesz wykonać.

Przykład: Chciałbym pobrać i zainstalować Drupal w mojej domenie przy użyciu PuTTY. Aby to zrobić, musisz:

Najpierw utwórz plik .txt. W tym pliku znajdują się polecenia. Moje to: „ drush dl drupal ” następny wiersz, „ drush si --account-name = [nazwa konta] --account-pass = [konto pass] --db-url = mysql: // [użytkownik]: [pass ] @ localhost / [nazwa bazy danych] --y "

Po zapisaniu tego pliku zamierzasz teraz utworzyć plik BAT lub wpisać go w wierszu CMD:

  • ssh.cmd
  • @echo on [aby zobaczyć, co się dzieje]
  • [Przejdź do instalacji PuTTY. Mój jest:] cd C: \ Program Files \ Putty
  • Początek 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]
Jero Dungog
źródło
Opcja -m nie działa dla mnie. podaje błąd informujący, że nie można otworzyć pliku poleceń <ścieżka do mojego pliku tekstowego>
user590849,
@ user590849 czy ścieżka do pliku tekstowego polecenia ma białe znaki? Ponieważ ja właśnie
Black Frog
2

Twoje podejście wydaje się dobre, jednak w zachowaniu jest jedno ustawienie domyślne, które powoduje problemy tutaj i prawdopodobnie sprawia, że ​​uważasz, że nic się nie dzieje.

Jednak gdy próbuję to zrobić, pojawia się nowe okno PuTTY, ale zamyka się i wychodzi natychmiast po zalogowaniu

Sesja kończy się natychmiast po wykonaniu polecenia, a PuTTY domyślnie zamyka okno. Zobacz dokumentację PuTTY, w jaki sposób zmienić to zachowanie dla swojej sesji.

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.
gertvdijk
źródło
Ciekawe, ale wpłynie to również na sesje manualne ...
Aviram Segal,
1
@AviramSegal To ustawienie sesji. Po prostu zduplikuj konfigurację sesji, powiedz session-noclosei użyj jej w skryptach.
gertvdijk
1
och, ustawienie sesji, to tak, to zadziała
Aviram Segal,
2

Nie byłoby problemu, jeśli chcesz po prostu utworzyć plik wsadowy, aby otworzyć maszynę Unix. Poniżej znajduje się przykład:

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

Ścieżka PuTTY powinna zawierać podwójne cudzysłowy, na przykład „C: \ Program Files \ putty \ putty.ext”

machinename = machinename bez podwójnych cudzysłowów

hasło = z cudzysłowami

użytkownik443234
źródło
0

Oprócz odpowiedzi Aviram:

Poniżej znajduje się przykład uruchamiania poleceń PuTTY z wiersza poleceń:

  • Najpierw przejdź na przykład do katalogu instalacyjnego PuTTY C:\Program Files\PuTTY, a następnie wykonaj poniższe polecenie:

    plink.exe -ssh IP_serwera -P port_no -l nazwa_użytkownika -pw hasło

Vishrant
źródło