這是本文件的舊版!
取得IP Address
Get the interface list and check the cable status
取得interface list方法很多種,除了可以透過ifconfig、ip等command外,先前我們是透過cat /proc/net/dev的方式。但我認為透過list /sys/class/net的方法比較簡單且通用:
net_base=/sys/class/net/ for dev in ${net_base}*; do dev_name=${dev##*/} is_carrier=`cat ${dev}/carrier` echo ${dev_name} echo ${is_carrier} done有幾個部分需要注意的,以eth0為例:
- dev變數為/sys/class/net/eth0的完整路徑,因此透過${dev##*/}的方式刪除以/前最長的部分,即/sys/class/net/。
- /sys/class/net/eth0/carrier如果在interface down的情況下,會出現如下圖錯誤;因此請先up後再做判斷。
Get IP Address
許多教學都是透過ifconfig去達成,由於我們script需要能夠執行於Ubuntu Server的安裝環境下,因此我使用ip command。
ip addr show | grep -o 'inet [0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+' | grep -o [0-9].*可在Ubuntu Server 14.04安裝環境下使用。