You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写Shell脚本:网络异常时自动POST账号密码到指定URL

修正后的网络检测与POST请求Shell脚本

原脚本存在的问题

  • 逻辑倒置:需求是网络不通时发送POST请求,但原脚本在ping通(网络正常)时执行请求,逻辑完全相反
  • 语法错误:do={...}是无效的Shell语法,执行命令无需这种包裹方式
  • 命令不兼容:/tool fetch是RouterOS系统的专属命令,普通Linux/Unix Shell环境需用curl或wget这类通用HTTP工具
  • 转义字符错误:原脚本中的&>是HTML转义格式,Shell中应写为&>;POST参数里的&&应改为单个&来分隔参数
  • URL冗余:https://secure.etecsa.net:8443//LoginServlet中的双斜杠可简化为单斜杠

修正后的脚本(curl版本)

#!/bin/sh
# 检测网络连通性,ping谷歌DNS 1次,忽略所有输出
if ! ping -c 1 8.8.8.8 &> /dev/null; then
    # 网络不通时发送POST请求
    curl -X POST \
         -d "username=myuser&password=mypass" \
         "https://secure.etecsa.net:8443/LoginServlet"
else
    # 网络正常时无操作,如需提示可取消下方注释
    # echo "网络连接正常"
fi

可选wget版本(无curl环境时使用)

#!/bin/sh
if ! ping -c 1 8.8.8.8 &> /dev/null; then
    # 发送POST请求并静默运行,丢弃响应内容
    wget --post-data="username=myuser&password=mypass" \
         "https://secure.etecsa.net:8443/LoginServlet" \
         -q -O /dev/null
fi

内容的提问来源于stack exchange,提问作者HDC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:35:29