Armel_Djient Ответов: 2

Как выполнить команду linux из winfrom C# ?


привет, все, что у меня есть winform c# visual studio и сервер, работающий в linux.
я хочу выполнить эту команду "netstat-an | grep :80 |wc-l" из моего интерфейса winform
но у меня нет выхода, и я не знаю, в чем проблема.

Что я уже пробовал:

использование системы.Диагностика;
использование системы.Безопасность;

ProcessStartInfo proc_start_info = новый ProcessStartInfo();
proc_start_info.Имяфайла = "Баш";
proc_start_info.Аргументы = " - c netstat-an | grep: 80 |wc-l ";
// - c позволяет дождаться выполнения команды и выйти из нее

proc_start_info. RedirectStandardOutput = true;
proc_start_info. UseShellExecute = false;
proc_start_info.CreateNoWindow = true;

Process proc = новый процесс();
тез.Докл.Информацию = proc_start_info;
тез.Докл.Начать();
результат строка = тез.Докл.StandardOutput.ReadToEnd();

details_socket.Текст = результат;

[no name]

Ваш winform программа, запущенная на компьютере с ОС Linux?

Armel_Djient

нет моя программа winform работает на windows

Richard MacCutchan

Тогда вы не сможете запускать из него команды Linux.

2 Ответов

Рейтинг:
0

bling

Машина linux ничего не примет, пока вы не пройдете проверку подлинности.

Используйте библиотеку SSH для удаленного входа в систему Linux из вашего приложения Windows. После входа в систему Linux вы можете отправлять команды в результирующую командную оболочку (скорее всего, bash). Обязательно выйдите из системы, когда закончите.

Пример библиотеки:

GitHub - sshnet/SSH. NET: SSH.NET это библиотека Secure Shell (SSH) для .NET, оптимизированная для параллелизма.[^]


Рейтинг:
0

Richard MacCutchan

Мы уже объясняли эту проблему в вашем предыдущем посте этого вопроса: Запуск консольной команды linux в C# visual studio ?[^].


Armel_Djient

я уже ответил вам. то, что ты сказал, - это не то, чего я хочу. позвольте мне задать вопрос по-другому: как я могу из своей winform получить доступ к удаленному серверу linux, открыв putty и передав команду для его выполнения?

Richard MacCutchan

Может быть, то, что я сказал, Не то, что вы хотите, но я боюсь, что именно так работают эти системы. Вам нужно будет использовать некоторую форму удаленного доступа к оболочке для подключения между системами Windows и Linux. Например, Google для "remote shell linux".