我手里有不少小脚本:清理日志、同步文件、生成周报。以前分散在不同目录,时间一长就忘记参数怎么写。
最近我把它们收敛成一个 CLI 工具,统一入口后,使用和维护都轻松了很多。
最小可用结构
tools/
cli.py
commands/
backup.py
report.py
config.toml
核心入口
import argparse
parser = argparse.ArgumentParser(prog='mytools')
sub = parser.add_subparsers(dest='cmd', required=True)
sub.add_parser('backup')
sub.add_parser('report')
args = parser.parse_args()
三个踩坑点
- 参数名改动后没有兼容旧脚本,导致定时任务失败
- 日志默认只打到控制台,排错时缺历史记录
- 配置文件路径写死,跨机器同步时经常报错
现在的做法
我给每个子命令补了 --dry-run,并把日志统一写到 /var/log/mytools。另外把配置路径做成环境变量覆盖,迁移时只改一处。
这个工具还在持续迭代,但它已经成为我每天打开终端后最先使用的命令之一。