先不要重跑,也不要直接相信“已扫完”。中断后判断覆盖范围,最可靠的做法是把本次扫描的任务清单、日志和结果表按URL做一次差集,再决定补扫、降级使用还是作废。下面用一个假设情境把决策过程串起来。
假设你用某个SEO自动化工具对一个约两万URL的站点做全站扫描,跑到一半进程被杀,界面只显示“任务中断”。此时不要看进度条,先找三样东西:本次任务的URL来源清单、运行日志、已产出的结果表。这三样决定了你能否判断覆盖范围。
如果这三样都缺失,覆盖范围无法判断,只能按未覆盖处理,重新规划任务。这不是保守,而是没有证据支撑任何覆盖率结论。
具体动作:把URL来源清单和结果表按规范化URL(去掉跟踪参数、统一大小写、统一结尾斜杠)做差集。差集为空,说明清单内全部有结果;差集非空,差集里的URL就是待补扫部分。
这一步的结果直接决定下一步:
注意一个反常现象:请求量或日志行数很高,不等于覆盖高。日志可能记录了重试、跳转链和重复URL,实际有效页面数可能远低于行数。反过来,日志行数骤降也可能是并发被限速,而不是任务快结束。
不是所有中断都需要重跑。判断标准是这批结果要支撑什么决策:
假设你正在做旧内容退出:需要判断哪些旧页面还有价值、哪些可以下线。这类决策对覆盖完整性要求高,因为漏扫的页面可能恰好是有流量或有外链的那些。此时宁可把任务按目录拆成多个小批次,每批单独记录完成状态,也不要再跑一个无法确认边界的大任务。
中断本身不可控,但可判断性是能提前设计的。把任务拆成可独立验收的批次,每批产出自己的URL清单和结果表,并记录批次的开始与结束时间。这样任何一次中断,你只需要检查当前批次的差集,而不是面对一个整体黑箱。
同时保留一份跨批次的URL总表,补扫时以总表为准去重。具体工具是否支持断点续跑、批次导出或增量模式,需要按你实际使用的版本核对,不能假定所有工具都有相同能力。判断覆盖范围的依据始终是清单与结果的差集,而不是界面上的进度显示。