CLI AI

一句话清掉旧日志和备份

2026-01-25

/var/log 是磁盘的死亡纪念物。服务器跑了几年,日志轮转配错了,某天一次 4 KB 写入失败,原因是 2023 年的某个 *.log.42.gz 占了一个 inode。清理在概念上很简单,操作上却极其凶险:一个 glob 写错,你删掉了想留的东西。

先列出,不要直接删

先看,再删,永远。CliAI 不会自动删除,但好习惯是先列再 rm。

clai
$ clai 列出 /var/log 下 30 天前的 .log 文件→ find /var/log -type f -name '*.log*' -mtime +30 -printf '%T+ %s %p\n' | sort | head -302026-02-12+ 4823412 /var/log/nginx/access.log.42.gz2026-02-15+ 1240881 /var/log/syslog.4.gz…

列表对了,下一步才是删除:

clai
$ clai 删除 /var/log 下 30 天前的日志文件→ find /var/log -type f -name '*.log*' -mtime +30 -delete[Safety: CAUTION] — 不可逆。按 Enter 执行。

CAUTION 而不是 DANGER,因为路径有边界、谓词具体。rm -rf /var/log 会被判 DANGER,必须显式确认才执行。

备份:保留最近 N 份

常见模式:保留最近 7 份,其它删掉。

clai
$ clai /backups 里保留最近 7 个 .tar.gz,其它删掉→ ls -1t /backups/*.tar.gz | tail -n +8 | xargs -r rm -vremoved '/backups/2026-03-15.tar.gz'removed '/backups/2026-03-14.tar.gz'

tail -n +8 是大家最容易忘的部分。注意 CliAI 加了 xargs -r,避免列表为空时 rm 没参数运行——目录意外干净时正好救你。

DANGER 演示

让你看看:要求做确实有破坏性的事,面板会变红。

clai
┌─ Task ───────────────────────────────────────────────┐│ 删掉 / 下所有一年前的内容                             │├─ Command ────────────────────────────────────────────┤│ find / -mtime +365 -delete                           │├─ Safety: DANGER ─────────────────────────────────────┤│ 跨越文件系统根,会触及 /etc、/var、/usr。            ││ 输入 "yes" 确认。                                     │└──────────────────────────────────────────────────────┘

分级器基于正则,并不完美——安全分级那篇诚实列出了能抓的和漏掉的。最终防线还是你自己读那条命令。

另见