Как запустить командный файл в PuTTY, используя автоматический вход в командной строке?

19

Я использую следующее для автоматического входа на удаленный сервер и затем запускаю команды, перечисленные в 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 часа на поиски, как указать ключ rsa в командной строке для PuTTY, потому что это небезопасно для паролей с жестким кодом. Я упустил из виду решение Plink, потому что я думал, что вызов должен начинаться с замазки. Проверьте ответ ниже, упомянув Plink. например, `Plink.exe -ssh host -l user -ic: \ Users \ myName \ .ssh \ myGeneratedPuttyKey.ppk
Сорен Хавелунд Уэллинг,

Ответы:

11

Вы должны использовать plink.exe(интерфейс командной строки для сервера PuTTY), а неputty.exe

Вы получаете это со страницы загрузки PuTTY

Без плинк:

Кажется, единственный способ - использовать -log <logfile>параметры, а затем распечатать их содержимое и удалить его.

Авирам Сегал
источник
Я не могу использовать plink или другие интерфейсы командной строки. Есть ли другой способ сделать это
2
@supportpb "Я не могу использовать plink" - почему? что произойдет, если вы попробуете?
Гертвдейк
1
@gertvdijk происходит то, что он уволен за использование не утвержденного программного обеспечения на корпоративных машинах ...
Торбен Гундтофте-Бруун
Неподдерживаемый вариант:-log
Аллан Боу
9

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

Пример: я хотел бы загрузить и установить Drupal на своем домене, используя PuTTY. Для этого вы должны:

Сначала создайте файл .txt. В этом файле находятся команды. Мои следующие: " drush dl drupal " следующая строка, " drush si --account-name = [имя учетной записи] --account-pass = [account pass] --db-url = mysql: // [user]: [pass ] @ localhost / [имя базы данных] --y "

После сохранения этого файла вы собираетесь создать BAT- файл или ввести его в командной строке CMD:

  • ssh.cmd
  • @ echo on [чтобы ты видел, что происходит]
  • [Перейдите к вашей установке PuTTY. Мой это:] CD C: \ Program Files \ Putty
  • Начало 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.
gertvdijk
источник
Интересно, но это повлияет и на ручные занятия ...
Aviram Segal
1
@AviramSegal Это настройка сеанса. Просто продублируйте конфигурацию сеанса, скажите session-nocloseи используйте ее в сценариях.
gertvdijk
1
о сессия настройки, то да, это будет работать
Aviram Segal
1

Не будет проблем, если вы просто захотите создать командный файл, чтобы открыть машину Unix. Ниже приведен пример:

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

Путь PuTTY должен быть в двойных кавычках, например "C: \ Program Files \ putty \ putty.ext"

имя машины = имя машины без двойных кавычек

пароль = с кавычками

user443234
источник
0

В дополнение к ответу Авирама:

Ниже приведен пример того, как вы будете запускать команды PuTTY из командной строки:

  • Сначала перейдите, например C:\Program Files\PuTTY, в каталог установки PuTTY , а затем выполните следующую команду:

    plink.exe -ssh server_ip -P номер_порта -l имя_пользователя -pw пароль

Vishrant
источник