在Linux运维与开发中,curlwget作为HTTP协议的经典命令行工具,通过脚本化封装可实现文件下载、API调用、自动化测试等高频场景的效率革命。本文从实战角度解析两者的核心能力与脚本化技巧。


一、工具特性对比与选型

维度

curl

wget

核心定位

HTTP协议调试与数据传输

递归下载与离线资源获取

协议支持

HTTP/1.1、HTTP/2、HTTPS、FTP等

HTTP/HTTPS、FTP,支持断点续传

脚本优势

精细控制请求头/体,支持JSON/XML

内置递归爬取逻辑,适合批量下载

典型场景

API调用、服务健康检查、性能测试

静态资源备份、网站镜像、日志归档


二、自动化脚本化实战

1. API自动化调用(curl)

bash

#!/bin/bash

# 定义变量

API_URL="https://api.example.com/users"

TOKEN="Bearer abc123xyz"

# 发送带认证的POST请求

curl -X POST "$API_URL" \

-H "Authorization: $TOKEN" \

-H "Content-Type: application/json" \

-d '{"name":"test","email":"test@example.com"}' \

-o response.json -sS \

&& echo "API调用成功" || echo "API调用失败"

# 解析JSON响应

USER_ID=$(jq -r '.id' response.json 2>/dev/null)

if [ -n "$USER_ID" ]; then

echo "创建用户ID: $USER_ID" >> api_log.txt

fi

关键技巧

  • -sS静默模式+错误输出
  • jq工具解析JSON响应
  • 结合&&/||实现条件执行

2. 批量资源下载(wget)

bash

#!/bin/bash

# 下载网站所有PDF文件

URL_LIST="https://example.com/docs/file1.pdf https://example.com/docs/file2.pdf"

LOG_FILE="download.log"

# 多线程并发下载(GNU wget支持)

for url in $URL_LIST; do

wget -c -q -t 3 --show-progress \

--header="User-Agent: MyBot/1.0" \

-O "$(basename $url)" "$url" 2>> "$LOG_FILE" &

done

# 等待所有后台任务完成

wait

echo "所有文件下载完成,日志见$LOG_FILE"

核心参数

  • -c断点续传
  • -t 3重试3次
  • -O自定义文件名
  • --header模拟浏览器请求


三、高级脚本化方案

定时任务集成

bash

# 每天凌晨2点同步远程日志

0 2 * * * /usr/bin/curl -s "https://logs.example.com/sync" --data-urlencode "token=SECRET" > /dev/null

错误处理增强

bash

if ! curl -f -o /dev/null "https://api.example.com/health"; then

echo "服务不可用" | mail -s "告警" admin@example.com

fi

跨平台兼容性

bash

# 使用条件判断适配不同系统

if command -v curl &> /dev/null; then

HTTP_CMD="curl -s"

else

HTTP_CMD="wget -qO-"

fi

$HTTP_CMD "https://example.com/data" | jq .


四、性能优化建议

  • 连接复用curl --keepalive-time 60(减少TCP握手开销)
  • 并发控制xargs -P 4(限制最大并发数)
  • 缓存复用wget --cache=on --directory-prefix=./cache

通过脚本化封装,curlwget可替代Python/Go等语言实现80%的HTTP自动化需求,尤其在资源受限的嵌入式Linux环境中更具优势。实际项目中建议结合crontabsystemd timer或CI/CD流水线实现全链路自动化。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐