Skip to content

goodapiyes/LinuxCmd.Net

Repository files navigation

LinuxCmd.Net

.net core linux cmd helper.

  1. Running Linux CMD.
  2. Get linux server status, include CPU, memory, and networking.

Example

//redirect:true 获取服务器命令执行结果
var ls = "ls".LinuxBash().Output;

//redirect:false 将命令执行结果重定向输出到服务器
ls = "ls".LinuxBash(false).Output;

//服务器状态对象
LinuxServerInfo server = new LinuxServerInfo();

//系统信息
var OSName = server.OSName;
$"echo {OSName}".LinuxBash(false);

//运行时长
var RunTime = server.RunTime;
$"echo {RunTime}".LinuxBash(false);

//系统负载
var LoadAverages = server.LoadAverages;
$"echo {LoadAverages}".LinuxBash(false);

//CPU状态: cpu描述,cpu核心数,cpu使用率
var cpuInfo = server.Cpu;
$"echo {cpuInfo.SerializeJSON().Replace('(',' ').Replace(')',' ')}".LinuxBash(false);

//内存状态:内存总容量,实际可用容量,已使用的容量,缓存化的容量,系统缓冲容量
var Mem = server.Mem;
$"echo {Mem.SerializeJSON()}".LinuxBash(false);

//磁盘状态:磁盘总容量,已用容量,可用容量,已用百分比
var Disk = server.Disk;
$"echo {Disk.SerializeJSON()}".LinuxBash(false);

//IO读写状态:读请求数量,写请求数量,读字节数,写字节数
var IO = server.IO;
$"echo {IO.SerializeJSON()}".LinuxBash(false);

//网络状态:接收的数据包数量,发送的数据包数量,接收字节数,发送字节数
var NetWork = server.NetWork;
$"echo {NetWork.SerializeJSON()}".LinuxBash(false);

//网络连接状态: tcp客户端IP,服务器IP,连接状态
var NetworkConnections = server.NetworkConnections;
foreach (var net in NetworkConnections)
{
    $"echo {net.SerializeJSON()}".LinuxBash(false);
}

//进程列表:进程id,进程所有者的用户名,虚拟内存使用量,物理内存使用量,进程状态,CPU使用率,进程命令名
var Tasks = server.Tasks;
for (int i = 0; i < 6; i++)
{
    $"echo {Tasks[i].SerializeJSON()}".LinuxBash(false);
}