atareao عدّل هذا المقطع 1 month ago. الانتقال إلى التعديل
1 file changed, 55 insertions
sysinfo_mod.rs(تم إنشاء الملف)
| @@ -0,0 +1,55 @@ | |||
| 1 | + | use anyhow::Result; | |
| 2 | + | ||
| 3 | + | pub fn ejecutar(formato: &str) -> Result<()> { | |
| 4 | + | let mut system = sysinfo::System::new_all(); | |
| 5 | + | system.refresh_all(); | |
| 6 | + | ||
| 7 | + | std::thread::sleep(sysinfo::MINIMUM_CPU_UPDATE_INTERVAL); | |
| 8 | + | ||
| 9 | + | let hostname = sysinfo::System::host_name().unwrap_or_default(); | |
| 10 | + | let kernel = sysinfo::System::kernel_version().unwrap_or_default(); | |
| 11 | + | let os_version = sysinfo::System::os_version().unwrap_or_default(); | |
| 12 | + | let uptime_secs = sysinfo::System::uptime(); | |
| 13 | + | ||
| 14 | + | match formato { | |
| 15 | + | "json" => { | |
| 16 | + | let info = serde_json::json!({ | |
| 17 | + | "hostname": hostname, | |
| 18 | + | "kernel": kernel, | |
| 19 | + | "os": os_version, | |
| 20 | + | "cpus": system.cpus().len(), | |
| 21 | + | "memory_total_gb": system.total_memory() as f64 / 1024.0 / 1024.0 / 1024.0, | |
| 22 | + | "memory_used_gb": system.used_memory() as f64 / 1024.0 / 1024.0 / 1024.0, | |
| 23 | + | "memory_percent": system.used_memory() as f64 / system.total_memory() as f64 * 100.0, | |
| 24 | + | "uptime_seconds": uptime_secs, | |
| 25 | + | }); | |
| 26 | + | println!("{}", serde_json::to_string_pretty(&info)?); | |
| 27 | + | } | |
| 28 | + | _ => { | |
| 29 | + | println!("-- Informacion del sistema --"); | |
| 30 | + | println!(" Hostname: {}", hostname); | |
| 31 | + | println!(" Kernel: {}", kernel); | |
| 32 | + | println!(" SO: {}", os_version); | |
| 33 | + | println!( | |
| 34 | + | " CPU(s): {} nucleos ({}%)", | |
| 35 | + | system.cpus().len(), | |
| 36 | + | system.global_cpu_usage() | |
| 37 | + | ); | |
| 38 | + | println!( | |
| 39 | + | " Memoria: {:.2} GB / {:.2} GB ({:.1}%)", | |
| 40 | + | system.used_memory() as f64 / 1024.0 / 1024.0 / 1024.0, | |
| 41 | + | system.total_memory() as f64 / 1024.0 / 1024.0 / 1024.0, | |
| 42 | + | system.used_memory() as f64 / system.total_memory() as f64 * 100.0 | |
| 43 | + | ); | |
| 44 | + | println!( | |
| 45 | + | " Swap: {:.2} GB / {:.2} GB", | |
| 46 | + | system.used_swap() as f64 / 1024.0 / 1024.0 / 1024.0, | |
| 47 | + | system.total_swap() as f64 / 1024.0 / 1024.0 / 1024.0 | |
| 48 | + | ); | |
| 49 | + | println!(" Activo: {} horas", uptime_secs / 3600); | |
| 50 | + | println!("------------------------------"); | |
| 51 | + | } | |
| 52 | + | } | |
| 53 | + | ||
| 54 | + | Ok(()) | |
| 55 | + | } | |
أحدث
أقدم