連網後自動運行程序
此頁由 Linux Wiki用戶Chenxing 於 2012年6月7日 (星期四) 17:43 的最後更改。
出自Linux Wiki
提示:此文已超过 12 年(4551 天)未更新,如发现内容过时或有误,欢迎改进:)
網絡連接建立後運行的腳本可以實現諸多實用功能,如動態域名綁定、連接VPN、上網認證等。
實現這一目標的大體思路有兩種:在基於NetworkManager的系統中,可配置其dispatcher腳本;而一般地,也可依賴不同Linux發行版提供的工具實現。
目錄 |
Network-Manager
目前在桌面環境中Network-Manager的使用很普遍。Network-Manager在網絡連接建立或斷開時會自動運行/etc/NetworkManager/dispatcher.d/中的文件。只要寫一個腳本放在該文件夾下,即可實現連接建立時自動運行程序。下面是OpenNtpd的例子[1]
#!/bin/sh INTERFACE=$1 # 状态发生变化的网络接口 STATUS=$2 # 网络接口的新状态:up, down, vpn-up, vpn-down case "$STATUS" in 'up') # $INTERFACE is up exec /etc/rc.d/openntpd start ;; 'down') # $INTERFACE is down # Check for active interface and down if no one active if [ ! `nm-tool|grep State|cut -f2 -d' '` = "connected" ]; then exec /etc/rc.d/openntpd stop fi ;; esac
發行版相關的解決方案
Debian/Ubuntu
對Debian系列發行版的配置較為簡便。所有的if-up腳本放在/etc/network/if-up.d,只需要將寫好的腳本放在/etc/network/if-up.d/,並添加可執行權限即可:
chmod 755 /etc/network/if-up.d/YOUR_SCRIPT
openSUSE
openSUSE中與網絡有關的腳本應被存放在/etc/sysconfig/network/scripts/。而連網後執行的腳本則放在/etc/sysconfig/network/if-up.d/,它們是到/etc/sysconfig/network/scripts/的符號鏈接。舉個例子,如果你已經有一個腳本文件YOUR_SCRIPT,需要做如下操作:
cp YOUR_SCRIPT /etc/sysconfig/network/scripts/ chmod 755 /etc/sysconfig/network/scripts/YOUR_SCRIPT ln -s /etc/sysconfig/network/scripts/YOUR_SCRIPT /etc/sysconfig/network/if-up.d/
Fedora
Fedora對這一功能支持的不是很好,只能在網絡連接建立後運行一個腳本,即/sbin/ifup-local。這個文件默認不存在,需要手動創建。下面的例子用vi編輯/創建這個文件,並添加執行權限。
# vi /sbin/ifup-local # chmod 755 /sbin/ifup-local
參考資料
本文对您有帮助?分享给更多朋友!
反馈与讨论
发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。