У меня есть сценарий, когда мне нужно часто запускать команду linux shell (с разными именами файлов) из окон. Я использую PuTTY и WinSCP для этого (требуется имя пользователя и пароль). Файл скопирован в предопределенную папку на машине linux через WinSCP, а затем команда запускается из PuTTY. Есть ли способ, с помощью которого я могу автоматизировать это с помощью программы. В идеале я хотел бы щелкнуть правой кнопкой мыши файл из окон и выдать команду, которая скопировала бы файл на удаленную машину, и запустить предопределенную команду (в PuTTy) с именем файла в качестве аргумента.
Автоматизация запуска команды в Linux из Windows с помощью PuTTY
Ответ 1
При автоматическом входе в систему могут возникать проблемы с безопасностью с использованием общих методов. Ниже приведен один из самых простых способов:
А для части выполняется команда В пользовательском интерфейсе putty, Connection > SSH > есть поле для удаленной команды.
4.17 Панель SSH
Панель SSH позволяет настроить параметры, которые применяются только к SSH сессий.
4.17.1 Выполнение определенной команды на сервере
В SSH вам не нужно запускать общий сеанс оболочки на сервере. Вместо этого вы можете одна конкретная команда (например, почтовый пользовательский агент, например). если ты хотите сделать это, введите команду в в поле "Удаленная команда". http://the.earth.li/~sgtatham/putty/0.53/htmldoc/Chapter4.html
ваши ответы могут быть похожими на текст ниже:
Ответ 2
Шпатлевка обычно поставляется с утилитой "plink".
Это, по сути, команда командной строки "ssh", реализованная как Windows.exe.
Это довольно хорошо задокументировано в руководстве по замазке в разделе "Использование инструмента командной строки".
Вам просто нужно обернуть команду, как:
plink [email protected] /etc/backups/do-backup.sh
в .bat script.
Ответ 3
Вы можете написать TCL script и установить сеанс SSH на эту машину Linux и автоматически выдавать команды. Проверьте http://wiki.tcl.tk/11542 для краткого руководства.
Ответ 4
Вы можете создать сеанс замазки и автоматически загрузить script на сервере при запуске сеанса:
putty -load "sessionName"
В удаленной команде укажите удаленный script.
Ответ 5
Вы можете выполнять обе задачи (загрузка и выполнение команды) с помощью WinSCP. Используйте WinSCP script как:
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
Затем вы можете запустить script как:
winscp.exe /console /script=script_path\upload.txt /parameter file_to_upload.dat
На самом деле вы можете поместить ярлык в указанную выше команду в меню "Проводник Windows Explorer", чтобы затем щелкнуть правой кнопкой мыши любой файл и перейти в "Отправить" > "Загрузить" с помощью WinSCP и выполнить удаленную команду (= name ярлыка).
Для этого перейдите в папку %USERPROFILE%\SendTo
и создайте ярлык со следующей целью:
winscp_path\winscp.exe /console /script=script_path\upload.txt /parameter %1
Ответ 6
код:
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 [email protected]"+args[0]+" -pw password -m commands.txt");
amixerMediaProcess.StartInfo.FileName = "plink.exe";
amixerMediaProcess.Start();
Console.Write("Presskey to continue . . . ");
Console.ReadKey(true);
}
}
}
Пример команды .txt:
пс
Ответ 7
Попробуйте MtPutty, вы можете автоматизировать вход в систему ssh. Это отличный инструмент, особенно если вам нужно много раз подключаться к нескольким серверам. Попробуйте здесь
Еще один инструмент, который стоит попробовать, - TeraTerm. Его очень легко использовать для автоматизации ssh. Вы можете получить здесь здесь. Но мой любимый всегда MtPutty.
Ответ 8
Вот полностью готовое решение.
- Установить AutoHotKey (ahk)
- Сопоставьте script с ключом (например, F9)
-
В ahk script, a) Ftp файл команд (.ksh) для Linux-машины
b) Используйте plink, как показано ниже. Plink следует установить, если у вас есть замазка.
имя сеанса plink -l имя пользователя -pw пароль test.ksh
или
plink -ssh example.com -l имя пользователя -pw пароль test.ksh
Все шаги будут выполняться последовательно, когда вы нажимаете F9 в окнах.