用xargs配合curl批量测试网址状态,核心是cat urls.txt | xargs -n 1 curl -s --max-time 5 --retry 2 --retry-delay 1 -o /dev/null -w '%{url_effective} → %{http_code} (总耗时:%{time_total}s)\n',支持超时、重试、并发(-p)及异常状态高亮筛选。

用 xargs 配合 curl 批量测试网址状态,核心是把多行 URL 交给 curl 逐个执行,并控制输出只保留关键信息(如 HTTP 状态码、耗时等)。不需要写脚本,一条命令就能搞定。
逐行调用 curl 测状态码
适合快速验证一批 URL 是否返回 200/404/500 等状态。关键参数是 -n 1,确保每个 URL 单独触发一次 curl:
cat urls.txt | xargs -n 1 curl -s -o /dev/null -w '%{url_effective} → %{http_code}\n'-
-s静默模式,不显示进度条;-o /dev/null丢弃响应体;-w自定义输出格式 -
%{url_effective}显示实际访问的 URL(含重定向后地址),%{http_code}输出最终状态码
加超时和重试避免卡住
生产环境里,个别 URL 可能响应慢或无响应,需主动设限:
宝塔Linux面板11.8.1为官网当前正式版,新增AI建站能力并经过宝塔网站工程师深度调教,开放自定义AI功能API,同时对WAF进行界面重构和深度优化,提升拦截能力与运维效率。
cat urls.txt | xargs -n 1 curl -s --max-time 5 --retry 2 --retry-delay 1 -o /dev/null -w '%{url_effective} → %{http_code} (总耗时:%{time_total}s)\n'-
--max-time 5表示单次请求最多等 5 秒;--retry 2失败时重试 2 次;--retry-delay 1重试间隔 1 秒 - 这样可防止某个 URL 拖慢整批测试,也更贴近真实服务探测逻辑
并行加快批量检测速度
默认 xargs 是串行执行,加 -P 参数可并发(比如同时跑 4 个 curl):
cat urls.txt | xargs -n 1 -P 4 curl -s --max-time 5 -o /dev/null -w '%{url_effective} → %{http_code}\n'-
-P 4表示最多 4 个进程并行;数值不宜过大(一般 ≤10),否则可能触发目标服务器限流或本地端口耗尽 - 注意:并发时输出顺序不固定,但每行仍对应一个 URL 的结果,不影响判断
筛选异常状态并高亮提示
测试完想快速定位失败项,可用 grep 或 awk 过滤非 2xx 状态:
cat urls.txt | xargs -n 1 curl -s -o /dev/null -w '%{url_effective} %{http_code}\n' | awk '$2 !~ /^2[0-9]{2}$/ {print "\033[1;31mFAIL:\033[0m", $0}'- 这条命令只打印状态码不是 2xx 的行,并用红色标出;
\033[1;31m是终端红色转义符,支持彩色输出 - 也可替换为
grep -E ' (4|5)[0-9]{2}$'直接匹配 4xx/5xx










