本文共 1219 字,大约阅读时间需要 4 分钟。
我的毕业设计中需要传递Linux服务器中的CPU使用率和内存使用率,在网上找了好久都没找到,直到某一天忽然想起来的一种解决方案,就是直接传递文件,这种方法性能实际上并不高,甚至很低,但确实可以实现功能。
思路说明:在Linux中,存在一个proc目录,该目录存放了非常多有用的信息,比如:
我在项目中直接通过SFTP的方式下载需要的文件到本地,然后自己写一个解析器解析数据,这时你就已经拿到了需要的信息。
这时下载的函数
//通过sftp下载文件 public static void SftpDown(String loca, String Server,String username,String passwd) { String ip = Link_Entity.IpAddress; int port = 22; try { using (var sftpClient = new SftpClient(ip, port, username, passwd)) { sftpClient.Connect(); using (var stream = File.Open(localPath, FileMode.OpenOrCreate)) { sftpClient.DownloadFile(ServerPath, stream); } } } catch (Exception) { RainnerException.SFTP_DOWNLOAD_WARRING(); } }
调用下载:
SftpDown(System.Environment.CurrentDirectory + "//Cache//" + "cpu.txt", "/proc/cpuinfo","root","root");
下载完就可以解析使用了,因为其文件内容具有一定固定格式,所有解析起来很简单,这种方法还可以获取非常多的Linux主机信息,当然Java或C/C++只要能实现SFTP的功能,就能获取这些信息。
转载地址:http://ybmmi.baihongyu.com/