c# 獲取linux 磁盤信息



public DiskInfo LinuxDisk(string path) { DiskInfo disk = new DiskInfo(); if (string.IsNullOrEmpty(path)) { return disk; } if (!path.StartsWith("/")) { path = "/" + path; } string shellPathLine = string.Format("cd {0}", path); string printLine = " awk '{print $2,$3,$4,$5}'"; string shellLine = string.Format("df -k {0} |", path) + printLine; Process p = new Process(); p.StartInfo.FileName = "sh"; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; p.Start(); p.StandardInput.WriteLine(shellPathLine); p.StandardInput.WriteLine(shellLine); p.StandardInput.WriteLine("exit"); string strResult = p.StandardOutput.ReadToEnd(); string[] arr = strResult.Split('\n'); if (arr.Length == 0) { return disk; } string[] resultArray = arr[1].TrimStart().TrimEnd().Split(' '); if (resultArray == null || resultArray.Length == 0) { return disk; } disk.TotalSize = Convert.ToInt32(resultArray[0]); disk.UsedSize = Convert.ToInt32(resultArray[1]); disk.AvailableSize = Convert.ToInt32(resultArray[2]); disk.Use = resultArray[3]; logger.Info(string.Format("Linux獲取目錄:{0},總大小:{1},已用:{2},未用:{3},使用率:{4}", path, disk.TotalSize, disk.UsedSize, disk.AvailableSize, disk.Use)); return disk; }
 public class DiskInfo
    {
        public long TotalSize { get; set; }

        public long UsedSize { get; set; }

        public long AvailableSize { get; set; }

        public string Use { get; set; }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章