修改DNS的Linux脚本,Shell脚本-配置网络
原先學習過shll但是只是了解一下它的語法而已,在平時中并沒有使用,在暑假的時候又
想起了shell,所以又回顧了一下,學習后一定要用,這樣才能掌握。最近實驗室剛裝好機子,什么
都要配置一下,包括網絡,以前配置網絡是通過圖形界面,但是ubuntu8.10以后圖形配置界面有
不小的變化浪費了我不少時間,所以以后配置網絡就不用圖形界面了,直接找系統的配置文件,
先修改網卡文件/etc/network/interfaces文件,我用的是靜態IP,網卡設備為eth0,所以配置文件為
auto lo
iface lo inet loopback
iface eth0 inet static
address 198.6.10.153
netmask 255.255.255.0
gateway 198.6.10.153
auto eth0
然后修改DNS文件/etc/resolv.conf文件,我的如下:
nameserver 198.6.10.123
但這樣以來就是每次要修改兩次文件,而且配置完成后還要重啟網絡:
sudo /etc/init.d/networking restart
雖然很直接也比較快,但每次配置機子也挺麻煩的,這時候shell就能發揮作用了,寫了一個
簡單的配置網絡的shell腳本(文件名config_net.sh):
#!/bin/sh
#根據自己的機子修改以下變量,以下變量為默認配置參數值
IP=192.168.89.15?? ?#這個是IP
NETMASK=255.255.255.0?? ?#這個是子網掩碼
GATEWAY=192.168.89.1?? ?#這個是網關
DNS=202.117.128.2?? ?#這個是DNS
DNS_DIR=/etc/resolv.conf?? ?#DNS文件路徑
IP_DIR=/etc/network/interfaces?? ?#網卡配置文件路徑
LOOP=”iface lo inet loopback”
ETH0=”iface eth0 inet static”
if [ $# -eq 4 ]; then
IP=$1;NETMASK=$2;GATEWAY=$3;DNS=$4;?? ?#如果帶4個參數運行
elif [ $# -eq 1 ]; then
IP=$1;?? ?#如果帶1個參數運行
elif [ $# -eq 0 ] ;then
echo “You use default configure”?? ?#如果不帶參數運行
else?? ?#錯誤的使用方式,打印使用方法
echo “ERR ARGUMENT,Follow is right:”
echo “./config_net.sh IP NETMASK GATEWAY DNS”
echo “(OR)./config_net.sh IP”
echo “(OR)./config_net.sh”
exit
fi
#將配置寫入到網卡配置文件中
echo “auto lo
${LOOP}
${ETH0}
address ${IP}
netmask ${NETMASK}
gateway ${GATEWAY}
auto eth0″>${IP_DIR}
#將配置寫入到DNS文件中
echo “nameserver ${DNS}”>${DNS_DIR}
#重啟網絡
/etc/init.d/networking restart
上面的腳本很簡單,實現的功能就是配置網絡,可以有以下使用方法:
1.$ ./config_net.sh?? (采用默認的配置參數)
2. $ ./config_net.sh IP?? ?(可以指定IP,其它參數默認)
3. $ ./config_net.sh IP NETMASK GATEWAY DNS?? ?(指定IP,子網掩碼,網關,DNS)
第一種方法可以直接修改文件中的默認值來配置。
第二種可以用在配置局域網中,可以修改此腳本,設定默認的子網掩碼,DNS,網關,然后運行時
只需指定IP即可,可以快速配置多臺系統。
第三種直接指定各項配置
總結
以上是生活随笔為你收集整理的修改DNS的Linux脚本,Shell脚本-配置网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银行怎么注销信用卡 各大银行注销流程汇总
- 下一篇: linux打包tar包命令,Linux压