Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法从c控制台应用程序在linux文件服务器上运行shell脚本_C#_Linux_Shell_Dicom - Fatal编程技术网

C# 有没有办法从c控制台应用程序在linux文件服务器上运行shell脚本

C# 有没有办法从c控制台应用程序在linux文件服务器上运行shell脚本,c#,linux,shell,dicom,C#,Linux,Shell,Dicom,我在linux文件服务器上有一个满是DICOM的目录。我将目录映射为网络驱动器,并创建了一个用于修改DICOM标记的c控制台应用程序,在导入到数据库之前,必须修改DICOM标记 当我在服务器中时,我可以运行以下操作将此目录中的所有内容导入我的数据库: for x in `ls -d1 *`; do dcmbase_import -U p_mfdid1 -n -l info -i "$x:spiromics:file:H:SPIROMICS"; done 我想知道是否有一种方法可以在c应

我在linux文件服务器上有一个满是DICOM的目录。我将目录映射为网络驱动器,并创建了一个用于修改DICOM标记的c控制台应用程序,在导入到数据库之前,必须修改DICOM标记

当我在服务器中时,我可以运行以下操作将此目录中的所有内容导入我的数据库:

for x in `ls -d1 *`;
do
    dcmbase_import -U p_mfdid1 -n -l info -i "$x:spiromics:file:H:SPIROMICS";
done
我想知道是否有一种方法可以在c应用程序中运行上述代码。例如,有没有办法访问linux文件服务器并执行shell脚本


目前,我必须运行我的c应用程序来更改头部,然后手动访问服务器并运行shell脚本。我希望这一切都包含在一个应用程序中,这样我就可以在一天结束时运行它,让它在夜间处理和导入

您不能通过网络共享运行shell脚本,因为这样会在本地计算机上运行它,您需要在Linux计算机上运行它

远程执行代码的常用方法是使用SSH运行代码或使用RPC调用代码。如果可能的话,我会避免RPC,因为即使它更强大,它也需要更复杂的设置

从Karl Johan Sjögren关于这个问题的文章中,我找到了一个用于.NET中SSH调用的git项目,以及一个可以让您开始的小存根。您可以将hostnameOrIp更改为Linux服务器,并将要运行的命令更改为脚本


在Linux服务器上运行脚本的标准方法是通过ssh。可以使用C ssh库,也可以调用外部ssh binaryLook来使用Renci.SshNet库来运行ssh命令。我添加了一些换行符以提高可读性。如果您不同意,请恢复编辑。
using (var client = new SshClient("hostnameOrIp", "username", "password"))
{
    client.Connect();
    client.RunCommand("etc/init.d/networking restart");
    client.Disconnect();
}