atareao bu gisti düzenledi 1 month ago. Düzenlemeye git
1 file changed, 57 insertions
dashboard.rs(dosya oluşturuldu)
| @@ -0,0 +1,57 @@ | |||
| 1 | + | use anyhow::Result; | |
| 2 | + | use sysinfo::Disks; | |
| 3 | + | ||
| 4 | + | pub fn ejecutar(watch: u64) -> Result<()> { | |
| 5 | + | loop { | |
| 6 | + | print!("\x1B[2J\x1B[H"); | |
| 7 | + | ||
| 8 | + | let mut system = sysinfo::System::new_all(); | |
| 9 | + | system.refresh_all(); | |
| 10 | + | std::thread::sleep(sysinfo::MINIMUM_CPU_UPDATE_INTERVAL); | |
| 11 | + | ||
| 12 | + | let disks = Disks::new_with_refreshed_list(); | |
| 13 | + | ||
| 14 | + | println!("╔═══════════════════════════════════════╗"); | |
| 15 | + | println!("║ DASHBOARD DEL SISTEMA ║"); | |
| 16 | + | println!("╚═══════════════════════════════════════╝"); | |
| 17 | + | println!(); | |
| 18 | + | ||
| 19 | + | println!("-- CPU --"); | |
| 20 | + | println!(" Nucleos: {}", system.cpus().len()); | |
| 21 | + | for (i, cpu) in system.cpus().iter().enumerate() { | |
| 22 | + | println!(" CPU {}: {:6.2}%", i, cpu.cpu_usage()); | |
| 23 | + | } | |
| 24 | + | println!(" Global: {:6.2}%", system.global_cpu_usage()); | |
| 25 | + | ||
| 26 | + | println!(); | |
| 27 | + | println!("-- Memoria --"); | |
| 28 | + | let total_mb = system.total_memory() as f64 / 1024.0 / 1024.0; | |
| 29 | + | let usada_mb = system.used_memory() as f64 / 1024.0 / 1024.0; | |
| 30 | + | let libre_mb = system.free_memory() as f64 / 1024.0 / 1024.0; | |
| 31 | + | println!(" Total: {:.0} MB", total_mb); | |
| 32 | + | println!(" Usada: {:.0} MB ({:.1}%)", usada_mb, usada_mb / total_mb * 100.0); | |
| 33 | + | println!(" Libre: {:.0} MB", libre_mb); | |
| 34 | + | ||
| 35 | + | println!(); | |
| 36 | + | println!("-- Discos --"); | |
| 37 | + | for disk in disks.list() { | |
| 38 | + | let total_gb = disk.total_space() as f64 / 1024.0 / 1024.0 / 1024.0; | |
| 39 | + | let libre_gb = disk.available_space() as f64 / 1024.0 / 1024.0 / 1024.0; | |
| 40 | + | println!( | |
| 41 | + | " {:?}: {:.1} GB libres de {:.1} GB ({:.0}% usado)", | |
| 42 | + | disk.mount_point(), | |
| 43 | + | libre_gb, | |
| 44 | + | total_gb, | |
| 45 | + | (1.0 - libre_gb / total_gb) * 100.0 | |
| 46 | + | ); | |
| 47 | + | } | |
| 48 | + | ||
| 49 | + | if watch == 0 { | |
| 50 | + | break; | |
| 51 | + | } | |
| 52 | + | ||
| 53 | + | std::thread::sleep(std::time::Duration::from_secs(watch)); | |
| 54 | + | } | |
| 55 | + | ||
| 56 | + | Ok(()) | |
| 57 | + | } | |
Daha yeni
Daha eski