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// }