Skip to main content

mycommon_utils/utils/
system_util.rs

1use sysinfo::{System };
2use crate::model::monitor_model::Sys;
3// use byte_unit::Byte;
4
5//
6// pub fn get_cpu_info()->Cpu{
7//     let sys = System::new_all();
8//     let cpus = sys.cpus();
9//     let global_cpu_usage = sys.global_cpu_usage();
10//     // 假设我们取第一个 CPU 的信息作为代表(或根据需要调整)
11//     let first_cpu = cpus.get(0).ok_or("No CPU information available");
12//     Cpu {
13//         cpu_num: cpus.len(),
14//         used: global_cpu_usage,
15//         brand: first_cpu.unwrap().name().to_string(),
16//         frequency: first_cpu.unwrap().frequency(),  // 注意类型转换,具体取决于库返回的类型
17//     }
18// }
19//
20// pub fn u64_to_gb(size:u64)->String{
21//     let byte = Byte::from_u64(size);
22//     format!("{byte:#.9}")
23// }
24//
25// pub fn get_mem_info()->Mem{
26//     let mut sys = System::new_all();
27//     sys.refresh_all();
28//     Mem{
29//         total: u64_to_gb(sys.total_memory()),
30//         used: u64_to_gb(sys.used_memory()),
31//         total_swap: u64_to_gb(sys.total_swap()),
32//         used_swap: u64_to_gb(sys.used_swap()),
33//     }
34// }
35//
36pub fn get_sys_info()->Sys{
37    let mut sys = System::new_all();
38    sys.refresh_all();
39    Sys{
40        os_name: System::name(),
41        os_version: System::os_version(),
42        host_name: System::host_name(),
43        kernel_version: System::kernel_version(),
44    }
45}
46//
47// pub fn get_disk_info()->Vec<SysFiles>{
48//     let disks = Disks::new_with_refreshed_list();
49//     let mut sys_file_vec = Vec::<SysFiles>::new();
50//     for disk in &disks {
51//         sys_file_vec.push(SysFiles{
52//             name: disk.name().to_str().map_or(String::new(), |v| v.to_string()),
53//             sys_type_name: disk.file_system().to_str().map_or(String::new(), |v| v.to_string()),
54//             type_name: disk.kind().to_string(),
55//             total: u64_to_gb(disk.total_space()),
56//             free: u64_to_gb(disk.available_space()),
57//         })
58//     };
59//     sys_file_vec
60// }