您的位置:首页 > 运维架构 > Shell

C#远程执行Linux系统中Shell命令和SFTP上传文件

2016-11-23 21:24 1151 查看
一、工具:SSH.Net

  网址:https://github.com/sshnet/SSH.NET



二、调用命令代码:

  

Renci.SshNet.SshClient ssh = new Renci.SshNet.SshClient("192.168.1.104", "sindrol", "123456");
ssh.Connect();
while (true)
{
Console.WriteLine("please input command:");
var line = Console.ReadLine();
if (string.IsNullOrWhiteSpace(line)) continue;
var cmd = ssh.RunCommand(line);
if (!string.IsNullOrWhiteSpace(cmd.Error))
Console.WriteLine(cmd.Error);
else
Console.WriteLine(cmd.Result);
}
ssh.Disconnect();


三、上传文件代码:

Renci.SshNet.SftpClient sftp = new Renci.SshNet.SftpClient("192.168.1.104", "sindrol", "123456");
sftp.Connect();
FileInfo fi = new FileInfo(@"D:\Project\Matlab\rcnn.rar");
var allLength = fi.Length;
sftp.UploadFile(new System.IO.FileStream(fi.FullName, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite, System.IO.FileShare.ReadWrite), "/home/sindrol/aa.zip", (pro) => { Console.WriteLine((pro * 1.0d / allLength * 1.0d).ToString("P")); });
Console.WriteLine("finished.");
while (true)
{
System.Threading.Thread.Sleep(500);
}


四、用法:

  1、一般用于将一个本地上写好的bash角本,通过Sftp上传到服务器,然后执行运行命令。

  2、由于是C#程序实现的,所以可以清松实现多台批量操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐