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脚本可以在网络接口启动或关闭时执行相应的动作,比如可以在wan口启动时获取外网IP:

#!/bin/sh
[ "$ACTION" = ifup ] || exit 0
[ "$INTERFACE" = wan ] || exit 0
ip=$(ifconfig pppoe-wan | grep inet | awk '{print $2}' | cut -c 6-)
logger $ip

保存为/etc/hotplug.d/iface/99-getip,配合DDNS就可以从外网访问路由器了。

参考链接:http://wiki.openwrt.org/doc/techref/hotplug

赞赏

微信赞赏支付宝赞赏

随机文章:

  1. 文件属性中“大小”和“占用空间”的区别
  2. 使用Rundll32运行DLL中的函数
  3. VBS中的左移位&右移位运算
  4. VBS加密 & VBE解密
  5. 用VBS读写二进制文件的另一种方法

2 条评论 发表在“OpenWrt中的Hotplug脚本”上

  1. […] 有了Hotplug脚本和DNSPod动态域名解析,从外网SSH远程访问家里的OpenWrt路由器易如反掌。不过考虑到安全性问题,OpenWrt默认是不允许从外网通过SSH进行远程访问的,需要进行设置。 […]

留下回复