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

Я использую следующее для автоматического входа на удаленный сервер, а затем запускаю команды, перечисленные в 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 в течение некоторого времени перед выходом?

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

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

Без plink:

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

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

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

Сначала создайте файл .txt. Внутри этого файла находятся команды. Mine: « 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. Mine is:] 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]

Ваш подход кажется хорошим, однако в поведении есть одна настройка по умолчанию, которая вызывает у вас проблемы и, вероятно, заставляет вас думать, что ничего не происходит.

Однако, когда я пытаюсь сделать это, появляется новое окно для 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. 

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

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

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

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

Password = с кавычками

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

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

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

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

  • Терминал Vs. Shell
  • Как искать слово или фразу в команде «человек» Linux и цикл через найденные решения?
  • Вызов сценария с ./bla.sh vs. bla.sh
  • Определение размера кэша L2 в Linux
  • Команды Unix для получения последней измененной даты и размера файла / папки (NOT LS)
  • Вырезать - разделитель должен быть единственным символом
  • Устранение дискового пространства unix-сервера, не добавляющего
  • Linux Mint VM в VirtualBox зависает с ошибкой DISKFULL
  • Создавать распределение размеров файлов из командной строки
  • Атрибуты файла
  • Где мои личные / общедоступные ключи SSH в UNIX?
  • Давайте будем гением компьютера.