Як запустити командний файл у PuTTY за допомогою автоматичного входу в командний рядок?


20

Я використовую наступне для автоматичного входу на віддалений сервер, а потім виконую команди, перелічені в а commands.txt, як це:

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

commands.txt містить наступне:

ps -elf|grep 'sometext'

Однак, коли я намагаюся це зробити, з'являється нове вікно для PuTTY, але воно закривається та закривається миттєво після входу. Як результат, я не бачу виводу команд (ив).

Я не розумію, що тут відбувається. Я помиляюся у своєму підході чи мені потрібно зробити більше кроків, щоб зробити вікно PuTTY паузою на деякий час, перш ніж вийти


2
Поміркуйте замість цього використати Plink.exe (як правило, в комплекті з Putty, не забудьте включити в PATH). Я провів 2 години в Google, як вказати ключ rsa в командному рядку для PuTTY, оскільки це небезпечно для жорстких паролів коду. Я не помітив рішення Plink, тому що, я вважав, що дзвінок повинен починатися з шпаклівки. Перевірте відповідь нижче, згадуючи Plink. Наприклад, `Plink.exe -ssh хостинг -l користувач -ic: \ Users \ myName \ .ssh \ myGeneratedPuttyKey.ppk
Soren Havelund Welling

Відповіді:


11

Ви повинні використовувати plink.exe(інтерфейс командного рядка до зворотних кінців PuTTY), а неputty.exe

Ви отримуєте це на сторінці завантаження PuTTY

Без плавки:

Здається, єдиний спосіб - скористатися -log <logfile>параметрами, а потім надрукувати його вміст та видалити.


Я не можу використовувати планкін або інші інтерфейси командного рядка. Чи є інший спосіб це зробити

2
@supportpb "Не можу використовувати планкін" - чому? що станеться, якщо спробувати?
gertvdijk

1
@gertvdijk, що трапляється, це те, що його звільняють за використання не затвердженого програмного забезпечення на корпоративних машинах ...
Torben Gundtofte-Bruun

непідтримуваний варіант:-log
Аллан Боу

10

Спочатку вам потрібно буде створити окремий файл, що містить усі команди, які ви хочете виконати.

Приклад: Я хотів би завантажити та встановити Drupal на своєму домені за допомогою PuTTY. Для цього потрібно:

Спочатку створіть .txt файл. У цьому файлі знаходяться команди. Мої наступні: " drush dl drupal " у наступному рядку, " drush si --account-name = [ім'я облікового запису] --account-pass = [рахунок пропуску] --db-url = mysql: // [user]: [pass ] @ localhost / [ім'я бази даних] --y "

Після збереження цього файлу тепер ви збираєтеся створити BAT- файл або введіть його у підказці CMD:

  • шш.см
  • @echo on [для вас, щоб побачити, що відбувається]
  • [Перейдіть до своєї установки PuTTY. Моє:] CD C: \ Файли програми \ Шпаклівка
  • Старт 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]

Варіант -m для мене не працює. він видає помилку, не можу відкрити командний файл <шлях до мого текстового файлу>
user590849

@ user590849 чи має шлях до текстового файлу вашої команди, пробіл? Тому що я просто
Чорна жаба

2

Ваш підхід здається гарним, однак, у поведінці є одне налаштування за замовчуванням, яке спричиняє вам тут проблеми і, ймовірно, змушує вас повірити, що нічого не відбувається.

Однак, коли я намагаюся це зробити, з'являється нове вікно для PuTTY, але воно закривається та закривається миттєво після входу

Ваш сеанс закінчується відразу після виконання команди, і PuTTY за замовчуванням закриває вікно. Дивіться документацію PuTTY про те, як змінити цю поведінку для сеансу.

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.

Цікаво, але це вплине і на ручні сеанси ...
Авірам Сегал

1
@AviramSegal Це налаштування сеансу. Просто скопіюйте конфігурацію сеансу, скажіть session-nocloseі використовуйте цю в сценарії.
gertvdijk

1
о, налаштування сеансу, тоді так, це спрацює
Aviram Segal

2

Не виникне жодних проблем, якщо ви просто хочете створити пакетний файл для відкриття машини Unix. Нижче наведено приклад:

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

Шлях PuTTY повинен містити подвійні лапки, як-от "C: \ Program Files \ putty \ putty.ext"

ім'я машини = ім'я машини без подвійних лапок

пароль = з цитатами


0

Окрім відповіді Авірама:

Нижче наведено приклад того, як ви запускаєте команди PuTTY з командного рядка:

  • Спочатку, наприклад, перейдіть до каталогу установки PuTTY C:\Program Files\PuTTY, а потім виконайте команду нижче:

    plink.exe -ssh server_ip -P port_no -l user_name -pw пароль

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.