Автоматизация выполнения команды на Linux из Windows с помощью шпатлевки
У меня есть сценарий, где мне нужно работать a команда оболочки linux часто (с разными именами файлов) из windows. Я использую PuTTY и WinSCP для этого (требуется имя пользователя и пароль). Файл копируется в предопределенную папку на машине linux через WinSCP, а затем команда запускается из PuTTY. Есть ли способ я могу автоматизировать это через программу. В идеале я хотел бы щелкнуть правой кнопкой мыши файл из windows и выдать команду, которая будет копировать файл на удаленную машину и запустите предопределенную команду (в PuTTy) с именем файла в качестве аргумента.
8 ответов:
там могут быть проблемы безопасности с общими методами для автоматического входа в систему. Один из самых простых способов описан ниже:
а что касается части выполняет команду В putty UI, Connection>SSH> есть поле для удаленной команды.
4.17 панель SSH
панель SSH позволяет настроить параметры, которые применяются только к SSH проведение сессий.
4.17.1 выполнение определенной команды на сервере
В SSH вам не нужно запускать общий сеанс оболочки на сервере. Вместо этого, вы можете выбрать, чтобы запустить одна конкретная команда (например почтовый агент пользователя, например). Если вы чтобы сделать это, введите команду в поле поле "удаленная команда". http://the.earth.li / ~sgtatham/putty/0.53/htmldoc/Chapter4.html
короче говоря, ваши ответы могут быть такими же ну быть похожим на текст ниже:
шпаклевка обычно поставляется с утилитой" plink".
Это по существу команда командной строки "ssh", реализованная как windows .исполняемый.
Это довольно хорошо документировано в руководстве по шпатлевке в разделе"использование инструмента командной строки plink".вам просто нужно обернуть команду, как:
plink root@myserver /etc/backups/do-backup.shв a .летучая мышь сценарий.
вы можете написать сценарий TCL и установить сеанс SSH на эту машину Linux и автоматически выдавать команды. Проверьте http://wiki.tcl.tk/11542 для краткого урока.
вы можете создать сеанс шпатлевки и автоматически загрузить скрипт на сервер, при запуске сеанса:
putty -load "sessionName"в удаленной команде укажите на удаленный скрипт.
код:
using System; using System.Diagnostics; namespace playSound { class Program { public static void Main(string[] args) { Console.WriteLine(args[0]); Process amixerMediaProcess = new Process(); amixerMediaProcess.StartInfo.CreateNoWindow = false; amixerMediaProcess.StartInfo.UseShellExecute = false; amixerMediaProcess.StartInfo.ErrorDialog = false; amixerMediaProcess.StartInfo.RedirectStandardOutput = false; amixerMediaProcess.StartInfo.RedirectStandardInput = false; amixerMediaProcess.StartInfo.RedirectStandardError = false; amixerMediaProcess.EnableRaisingEvents = true; amixerMediaProcess.StartInfo.Arguments = string.Format("{0}","-ssh username@"+args[0]+" -pw password -m commands.txt"); amixerMediaProcess.StartInfo.FileName = "plink.exe"; amixerMediaProcess.Start(); Console.Write("Presskey to continue . . . "); Console.ReadKey(true); } }}
примеры команд.txt:
ps
вы можете выполнять обе задачи (загрузка и выполнение команды) с помощью WinSCP. Используйте скрипт WinSCP, например:
option batch abort option confirm off open your_session put %1% call script.sh exitСсылка для
callкоманда:
https://winscp.net/eng/docs/scriptcommand_callСсылка для
%1%синтаксис:
https://winscp.net/eng/docs/scripting#syntaxзатем вы можете запустить скрипт так:
winscp.exe /console /script=script_path\upload.txt /parameter file_to_upload.datна самом деле, вы можете поставить ярлык для приведенной выше команды к проводнику Windows Отправить меню, так что вы можете просто щелкнуть правой кнопкой мыши любой файл и перейти к отправить в > загрузить с помощью WinSCP и выполнить удаленную команду (=имя ярлыка).
для этого, перейдите в папку
%USERPROFILE%\SendToи создать ярлык со следующей целью:winscp_path\winscp.exe /console /script=script_path\upload.txt /parameter %1посмотреть создание записи в меню Проводника "отправить в".
попробовать MtPutty, вы можете автоматизировать вход ssh в нем. Это отличный инструмент, особенно если вам нужно войти на несколько серверов много раз. Попробуйте здесь
еще один инструмент стоит попробовать TeraTerm. Его очень легко использовать для автоматизации ssh вещей. Вы можете получить его здесь. Но мой любимый всегда MtPutty.
вот полностью из коробки решение.
- установить AutoHotKey (ahk)
- сопоставьте скрипт с ключом (например, F9)
в скрипте ahk, a) Ftp команды (.ksh) файл на машину linux
b) используйте плинк, как показано ниже. Плинк должен быть установлен, если у вас есть замазку.
plink sessionname-L username-pw password test.КШ
или
plink-ssh example.com - L имя пользователя-PW пароль тест.КШ
все шаги будут выполняться последовательно при нажатии клавиши F9 в windows.
Comments