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?


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.


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]

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.

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


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.