macOS 怎么在 Shell 脚本中实现失败自动重试网络请求逻辑

老丽君_6094

老丽君_6094

2026-08-20

572人浏览

原创

macos shell 脚本中实现网络请求自动重试需构建带判断、等待和退出控制的可靠循环:优先用 curl 内置参数(--retry、--retry-delay 等);关键任务应手动封装循环,结合状态码检测、指数退避与日志记录;inode 或代理环境下需联动进程清理与重启;须避免对 4xx 错误盲目重试及无延时循环。

macos 的 shell 脚本中实现网络请求失败自动重试,关键不是“反复执行命令”,而是构建有判断、有等待、有退出控制的可靠循环。系统原生工具(如 curl)已内置基础重试能力,但要真正适配真实办公场景(比如 inode 断连、内网 dns 不稳、代理干扰),需要组合检测 + 重试 + 状态反馈。

用 curl 命令直接启用重试参数(最简方案)

macOS 终端自带的 curl 支持开箱即用的重试机制,无需额外依赖,适合下载、API 调用等一次性请求:

  • --retry N:失败后最多重试 N 次(注意:0 表示不重试,1 表示最多再试 1 次,即总共最多执行 2 次)
  • --retry-delay S:每次重试前等待 S 秒(推荐 3–8 秒,避免瞬间刷爆服务端)
  • --connect-timeout T:单次连接建立超时(单位秒,建议设为 10–30)
  • --max-time T:单次请求总耗时上限(含传输,建议设为 60–300)

例如拉取一个内网配置文件:

curl -s --retry 3 --retry-delay 5 --connect-timeout 15 --max-time 120 -o /tmp/config.json "http://intranet/api/v1/config"

封装带状态判断的重试循环(推荐用于关键任务)

当需要区分“网络不通”“服务不可达”“响应异常”或配合其他动作(如重启服务)时,应手动写循环,并加入条件退出逻辑:

macOS Local Voice
macOS Local Voice

利用 macOS 原生能力实现本地语音识别与合成。通过 yap (Apple Speech.framework) 进行语音转文字,通过 say + ffmpeg 进行文字转语音。完全离线,无需 API 密钥。具备音质检测与智能选声功能。

下载
  • 每次尝试前先检查基础连通性(如 ping 网关或 nslookup 解析域名)
  • curl -Icurl -s -o /dev/null -w "%{http_code}" 获取 HTTP 状态码,只对 2xx/3xx 视为成功
  • 设置最大尝试次数和指数退避(如第 1 次等 2 秒,第 2 次等 4 秒,第 3 次等 8 秒)
  • 失败时记录日志(可用 logger 或写入本地文件),便于排查是网络问题还是目标服务问题

示例片段:

for i in $(seq 1 5); do
  if curl -s -o /dev/null -w "%{http_code}" "https://api.example.com/health" | grep -q "200"; then
    echo "✅ 请求成功"; exit 0
  fi
  echo "⚠️ 第 $i 次失败,等待 $(($i * 2)) 秒后重试..."
  sleep $(($i * 2))
done
echo "❌ 重试 5 次均失败,退出" >&2
exit 1

结合 iNode 或代理环境的特殊处理

在企业内网(如使用 iNode 认证)下,单纯重试请求往往无效——根本原因是认证服务掉线或代理设置被重置。此时重试逻辑需联动进程管理:

  • 检测到网络请求失败后,先运行 killall AuthenMngService iNodeMon 清理残留进程
  • 延迟 3–5 秒,再用 open -a iNodeClient 重启客户端
  • 等待 8–12 秒让认证模块完成握手,再发起业务请求
  • 整个流程可嵌套进外层重试循环,形成“网络检测 → 清理重启 → 再请求”的闭环

避免常见陷阱

重试不是万能解药,不合理使用反而加重问题:

  • 不要对 4xx 错误(如 401 Unauthorized、404 Not Found)盲目重试——这类错误通常不会因重试而恢复
  • 避免在无 sleep 的 while 循环里调用 curl,可能触发限流或被防火墙拦截
  • 脚本中尽量用 -s(静默)+ -f(失败时不输出 body)防止日志被大量响应体污染
  • 若脚本用于 LaunchDaemon 后台任务,记得用 launchctl bootout gui/$UID 等方式确保环境变量完整,否则 curl 可能找不到证书或代理配置

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

macos

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

2025.12.13

426

14

Figma AI自动化智能数据填充与交互生成实战
Figma AI自动化智能数据填充与交互生成实战

告别机械重复,详细演示如何用 AI 填充业务真实数据,并自动为页面添加交互连线,将静态设计稿快速转变为动态原型。

2026.05.13

245

17

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

2026.09.21

0

24

NumPy矩阵运算与线性代数计算
NumPy矩阵运算与线性代数计算

本专题整理 NumPy 矩阵运算与线性代数计算相关教程,覆盖矩阵乘法、dot 与 @ 运算符、逆矩阵、行列式、特征值与特征向量、SVD、线性方程组、欧氏距离、矩阵分解和大规模矩阵性能优化等内容,帮助读者掌握 np.linalg 与矩阵计算实战。

2026.09.21

0

20

NumPy广播机制数学运算与统计分析
NumPy广播机制数学运算与统计分析

本专题整理 NumPy 广播机制、数组数学运算与统计分析相关教程,覆盖广播规则、维度对齐、矩阵与数组加减除法、向量化计算、均值方差、分位数、中位数、直方图和 unique 频次统计等场景,帮助读者掌握 ndarray 高效计算与统计处理方法。

2026.09.21

0

17

NumPy数组创建索引切片与数据选择
NumPy数组创建索引切片与数据选择

本专题整理 NumPy 数组创建、索引、切片与数据选择相关教程,覆盖 np.array、zeros/ones、多维数组形状、基础切片、花式索引、布尔索引、条件筛选、视图与副本等常用场景,帮助读者系统掌握 ndarray 数据构造与高效提取方法。

2026.09.21

0

12

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

20

13

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

200

9

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Miniconda官方安装文档
Miniconda官方安装文档

共0课时 | 0人学习

HBuilderX macOS 安装手册
HBuilderX macOS 安装手册

共0课时 | 0人学习

Apifox下载与安装手册
Apifox下载与安装手册

共0课时 | 0人学习