更新各种脚本
This commit is contained in:
23
src/main.rs
23
src/main.rs
@ -1,4 +1,4 @@
|
||||
use std::time::Duration;
|
||||
use std::{collections::HashSet, time::Duration};
|
||||
|
||||
use clap::{Parser};
|
||||
use config::{Config, ConfigError, Environment};
|
||||
@ -40,12 +40,29 @@ async fn task(settings: &Settings) -> anyhow::Result<()> {
|
||||
let disks = sysinfo::Disks::new_with_refreshed_list();
|
||||
|
||||
let mut available = 0;
|
||||
let mut seen_device = HashSet::new();
|
||||
|
||||
for disk in disks.list().iter().filter(|d| !d.is_removable()) {
|
||||
available += disk.available_space();
|
||||
let mount_path = disk.mount_point().to_string_lossy();
|
||||
if mount_path.contains("/snap") || mount_path.contains("/docker") {
|
||||
continue;
|
||||
}
|
||||
match disk.kind() {
|
||||
sysinfo::DiskKind::SSD | sysinfo::DiskKind::HDD => {
|
||||
let dname = disk.name().to_string_lossy().to_string();
|
||||
if !seen_device.insert(dname.clone()) {
|
||||
continue;
|
||||
}
|
||||
let davailable = disk.available_space();
|
||||
tracing::info!(disk=dname, available=davailable, "检查一块硬盘");
|
||||
available += davailable;
|
||||
}
|
||||
_ => continue, // 跳过 Unknown, Overlaid 等类型
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
let report = (available >> 20) / 100;
|
||||
let report = ((available >> 20) * 10) >> 10;
|
||||
tracing::info!(report = report, "获取剩余硬盘空间(单位 .1GB)");
|
||||
|
||||
if settings.server_url.is_empty() {
|
||||
|
||||
Reference in New Issue
Block a user