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


    一、工具: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:ProjectMatlab
    cnn.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#程序实现的,所以可以清松实现多台批量操作。

  • 相关阅读:
    JAVA安装
    capture格式布局
    CSS样式表
    进制的转换
    CentOs7设置主机名称,以及主机名称和ip的对应关系
    CentOS7中NAT网卡设置静态IP
    CentOs7安装配置JDK
    基于Go语言构建区块链:part5
    基于Go语言构建区块链:part4
    BoltDB使用笔记
  • 原文地址:https://www.cnblogs.com/songxingzhu/p/6095422.html
Copyright © 2020-2023  润新知