用shell设置静态IP

由于电信一直限制共享,为了破解不得不经常性的改网关。但是手动修改直的很烦,于是写了个shell.

测试系统:CentOS 6

example:

#ipconfig.sh  ethx  192.168.1.111

#!/bin/bash
# file--ipconfig.sh
device="$1"
hwaddr=""
bootproto="static"
broadcast=""
ipaddr="$2"
netmask="255.255.255.0"
gateway=""
network=""
onboot="yes"
nm_controlled="yes"

if [ "$device" = "" ] || [ "$ipaddr" = "" ]; then
    echo "Usage: $0 \"ethx\" ipaddress"
    exit 1
fi

file="/etc/sysconfig/network-scripts/ifcfg-$device"
if [ ! -f "$file" ]; then
    touch "$file"
fi
#cp "$file" "$file""_backup"
#echo "$old_gateway"
#value="${old_gateway#*=}"
#echo "value:$value"

device=$(ifconfig "$device" | grep 'HWaddr' | awk '{print $1}')

hwaddr=$(ifconfig "$device" | grep 'HWaddr' | awk '{print $5}')

broadcast=${ipaddr%.*}".255"

gateway=${ipaddr%.*}".1"


network=${ipaddr%.*}".0"


comment=$(grep '#' "$file")
if [ "$comment" = "" ]; then
    comment="# Here is the ip configuration file"
fi
cat << !here! > "$file"
$comment
DEVICE=$device
HWADDR=$hwaddr
BOOTPROTO=$bootproto
IPADDR=$ipaddr
NETMASK=$netmask
NETWORK=$network
BROADCAST=$broadcast
GATEWAY=$gateway
NM_CONTROLLED=$nm_controlled
ONBOOT=$onboot
!here!
nameserverfile="/etc/resolv.conf"
if [ ! -f "$nameserverfile" ]; then
    touch "$nameserverfile"
fi
chattr -i /etc/resolv.conf

# 这里的nameserver改成离你最近的电信DNS
cat << EOF > /etc/resolv.conf
nameserver 202.101.224.69
nameserver 202.101.226.68
EOF
chattr +i /etc/resolv.conf
ifdown "$device"
ifup "$device"

转载于:https://my.oschina.net/qyh/blog/52437

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值