更新各种脚本

This commit is contained in:
2026-02-22 20:55:05 +08:00
parent fd373d10c8
commit 68f6f02ec5
9 changed files with 330 additions and 8 deletions

View File

@ -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() {