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
#!/bin/bash [ "$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/bash if [ $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斷開,然后再連接,或者直接重啟路由器,即可看到效果