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

USG-3P路由器Bash脚本中disconnect/connect命令找不到求助

解决Unifi USG-3P脚本执行PPPoE重连命令失败的问题

问题根源

终端能正常运行disconnect interface pppoe0和connect interface pppoe0,但脚本里提示"command not found",核心原因是这两个命令是EdgeOS CLI的内置命令,并非系统独立可执行文件,且脚本的执行环境未加载EdgeOS的CLI环境变量,导致找不到命令。

可行解决方案

方法1:通过vbash调用CLI环境执行命令

直接在脚本里用Unifi USG专用的vbash shell来执行命令,确保加载CLI环境:

# 断开PPPoE连接
vbash -c "configure; disconnect interface pppoe0; exit"
# 等待5秒确保断开完成
sleep 5
# 重新连接PPPoE
vbash -c "configure; connect interface pppoe0; exit"
  • vbash是EdgeOS的专属shell,负责加载CLI的运行环境
  • configure进入配置模式,部分CLI命令需要此前置操作
  • 执行完命令后用exit退出CLI环境

方法2:修改脚本的shebang并加载环境模板

把脚本的开头改成以下内容,让脚本直接在vbash环境下运行,并加载EdgeOS的脚本模板:

#!/bin/vbash
source /opt/vyatta/etc/functions/script-template

# 后续直接执行命令即可
configure
disconnect interface pppoe0
sleep 5
connect interface pppoe0
exit

修改后记得给脚本加执行权限:chmod +x getip.sh

方法3:先确认命令的实际调用方式

如果不确定命令类型,可在终端执行type disconnect:

  • 若输出disconnect is a shell function,说明是内置函数,只能用前两种方法
  • 若输出绝对路径,直接把脚本里的命令替换成该绝对路径即可

验证操作

修改脚本后手动执行测试,然后用以下命令检查PPPoE接口状态:

show interfaces pppoe pppoe0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 11:57:05