Автоматизация выполнения команды в Linux из Windows с помощью PuTTY
У меня есть сценарий, где мне нужно работать a linux shell команда часто (с разными именами файлов) из windows. Я использую PuTTY и WinSCP для этого (требуется имя пользователя и пароль). Файл копируется в предопределенную папку на машине linux через WinSCP, а затем команда запускается из PuTTY. Есть ли способ я могу автоматизировать это через программу. В идеале я хотел бы щелкнуть правой кнопкой мыши файл из windows и выдать команду, которая будет копировать файл на удаленную машину и запустите предопределенную команду (в PuTTy) с именем файла в качестве аргумента.
8 ответов
могут возникнуть проблемы безопасности с общими методами автоматического входа в систему. Один из самых простых способов описан ниже:
а что касается части, то выполняет команду В putty UI, Connection>SSH> есть поле для удаленной команды.
4.17 панель SSH
панель SSH позволяет настроить параметры, которые применяются только к SSH проведение сессий.
4.17.1 выполнение определенной команды на сервере
В SSH вам не нужно запускать общий сеанс оболочки на сервере. Вместо этого вы можете запустить одна конкретная команда (например, например, mail user agent). Если вы хотите сделать это, введите команду в поле" удаленная команда". http://the.earth.li / ~sgtatham/putty/0.53/htmldoc/Chapter4.html
короче говоря, ваши ответы могут так же, как хорошо быть похожим на текст ниже:
шпаклевка обычно поставляется с утилитой "plink".
Это, по сути, команда командной строки "ssh", реализованная как windows .исполняемый.
Это довольно хорошо документировано в руководстве putty в разделе"использование инструмента командной строки plink".
вам просто нужно обернуть команду, как:
plink root@myserver /etc/backups/do-backup.sh
в a .bat скрипт.
вы можете написать сценарий TCL и установить сеанс SSH на эту машину Linux и автоматически выдавать команды. Проверить http://wiki.tcl.tk/11542 краткий учебник.
вы можете создать сеанс шпаклевки и автоматически загрузить скрипт на сервер, при запуске сеанса:
putty -load "sessionName"
по команде remote укажите удаленный скрипт.
код:
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 в нем. Его отличный инструмент, особенно если вам нужно войти в несколько серверов много раз. Попробуйте!--3-->здесь
еще один инструмент стоит попробовать Тера терм. Его очень легко использовать для автоматизации ssh. Вы можете получить его здесь. Но мой любимый всегда MtPutty.
вот полностью из коробки решение.
- установить аутохотки-AutoHotkey (АХК)
- сопоставьте скрипт с ключом (например, F9)
-
в сценарии ahk, a) Ftp команды (.ksh) файл на машине linux
b) используйте plink как ниже. Plink должен быть установлен, если у вас есть замазка.
plink sessionname-L имя пользователя-PW тест пароля.КШ
или
plink-ssh example.com -L имя пользователя-PW тест пароля.КШ
все шаги будут выполняться последовательно при нажатии клавиши F9 в windows.