Chinaunix首页 | 论坛 | 博客
  • 博客访问: 174246
  • 博文数量: 30
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 440
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-23 19:45
文章分类

全部博文(30)

文章存档

2016年(2)

2010年(3)

2009年(8)

2008年(17)

我的朋友

分类: LINUX

2010-01-28 17:05:42

原先学习过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即可,可以快速配置多台系统。
第三种直接指定各项配置

阅读(2836) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~