软件吧
登录注册账号
/posts/win-zip-bat-yyyymm
电脑必备

日志包按日期切分后,我拿批处理脚本把每月整理时间压到十分钟

码农小张 77 0 13

先说结论:日志包这东西,别指望一款工具全包,我现在是「入库用 Win解压缩、跑脚本用 7-Zip 命令行」,分工明确,谁也不耽误谁。

场景

我们后端服务每天凌晨滚一个日志归档,一个月下来二十几个包,单个 200M 到 1.5G 不等,里面还有嵌套的旧包。以前我是手动一个个解,解完再按日期挪文件夹,遇上月底对账那几天,光整理就得小半天。

上个月我把这套流程拆成两步,实测跑了整月,手动整理从每月约两小时压到十分钟左右。

具体做法

  1. 批量解包只认命令行。写了个 .bat,for /r 遍历日志目录,调 7z x 带 -o 输出到按 yyyyMM 建的目录里。Win解压缩图形界面解单包确实快,我拿 10GB 大包实测过,深度模式内存压得也稳,但它命令行支持弱,没法塞进脚本循环,这是硬伤。
  2. 解完立刻归档。脚本跑完我只看一眼目录结构和文件数,对得上就打包扔冷存储,不留在工作盘上占地方。
  3. 老包重命名加日期前缀。这一步最土但也最省事,20240901_ 这种前缀一加,资源管理器按名称排序就是时间序,找东西不用再翻修改时间。

踩过的坑

  • -mmt 别开满。有次图快把多线程拉满,结果小文件多的包反而更慢,机械盘上尤其明显。后来固定 -mmt=4,两台机器对下来都比拉满稳。
  • 路径带空格必须加引号。部署包路径里带个空格,脚本静默失败,我盯了半天日志才发现引号没包全。
  • 杀软白名单要加整目录。之前只加了 7z.exe 单文件,结果脚本拉起的临时进程照样被拦,解到一半卡住。后来把脚本目录和输出目录整目录加进白名单,才彻底消停。

判断依据

我选工具就看两条:能不能进脚本、出错有没有明确返回码。Win解压缩适合普通用户日常解个包、看看内容,双击就开,这点没得说;但只要涉及批量、定时、无人值守,就得靠 7-Zip 的命令行。两款我都留着,各干各的活。

顺便问一句,你们日志包是按天切还是按大小切?我现在按天切,月底那几个大包解起来还是有点肉疼,想看看有没有更细的切法。

登录后可以为帖子点赞,但本帖内容对所有人开放阅读。

社区回应

0 Replies

还没有回应,抢一个沙发。

登录后可以回应和点赞,但本帖内容对所有人开放阅读。