谷动谷力

 找回密码
 立即注册
查看: 774|回复: 0
打印 上一主题 下一主题
收起左侧

OpenWrt中的Hotplug脚本

[复制链接]
跳转到指定楼层
楼主
发表于 2023-7-29 09:12:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sunsili 于 2023-7-29 09:14 编辑

OpenWrt中的Hotplug 脚本

Hotplug,直译就是热插拔。在OpenWrt中,无论何时一个设备从系统中增删,都产生一个“热插拔事件”。

每次网络接口启动(up)或者关闭(down)的时候,所有在/etc/hotplug.d/iface/目录中的脚本都会以字母顺序执行。根据一个不成文的规则,会在每个脚本的前面加上一个数字前缀来设置正确的运行顺序。这就是为什么脚本名称都像:/etc/hotplug.d/iface/<nn>-<scriptname>的原因。
在iface hotplug脚本中有三个主要的环境变量:
变量名称
描述
ACTION
"ifup" 或者 "ifdown"
INTERFACE
网络接口的名称,如"wan"
DEVICE
物理设备的名称,如"br-lan"

利用hotplug脚本可以在网络接口启动或关闭时执行相应的动作,新建:/etc/hotplug.d/iface/99-ipreport:
vi /etc/hotplug.d/iface/99-ipreport
[ "$ACTION" = ifup ] || exit 0
[ "$INTERFACE" = wan ] || exit 0
ip=$(ifconfig pppoe-wan | grep inet | awk '{print $2}' | cut -c 6-)
echo $ip > /tmp/ip.txt


会生成一个/tmp/ip.txt,里面有个外网ip地址
或者换一种if写法,将脚本外置方便修改
vi /etc/hotplug.d/iface/99-ipreport
#!/bin/bashif
[ $ACTION=ifup -a $INTERFACE=wan ];
then  sh /root/pppoe-success.sh
fi
/root/pppoe-success.sh的内容为访问一个网址汇报ip地址
vi /root/pppoe-success.sh
#!/bin/bash
curl -s '网址' > /dev/null
上面用到了curl,openwrt默认没有,可以在luci后台搜索curl安装
然后设置执行权限,ipreport无需设置执行权限,只需要设置外部脚本pppoe-success.sh执行权限即可
chmod +x /root/pppoe-success.sh
在luci后台将wan断开,然后再连接,或者直接重启路由器,即可看到效果

+10

本帖被以下淘专辑推荐:

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-5-27 22:03 , Processed in 0.074895 second(s), 41 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表