Подтвердить что ты не робот

Автоматизация запуска команды в Linux из Windows с помощью PuTTY

У меня есть сценарий, когда мне нужно часто запускать команду linux shell (с разными именами файлов) из окон. Я использую PuTTY и WinSCP для этого (требуется имя пользователя и пароль). Файл скопирован в предопределенную папку на машине linux через WinSCP, а затем команда запускается из PuTTY. Есть ли способ, с помощью которого я могу автоматизировать это с помощью программы. В идеале я хотел бы щелкнуть правой кнопкой мыши файл из окон и выдать команду, которая скопировала бы файл на удаленную машину, и запустить предопределенную команду (в PuTTy) с именем файла в качестве аргумента.

4b9b3361

Ответ 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:

пс

Ссылка: https://huseyincakir.wordpress.com/2015/08/27/send-commands-to-a-remote-device-over-puttyssh-putty-send-command-from-command-line/

Ответ 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 в окнах.