shell實現將動態ip修改為靜態ip,靜態ip修改為其它靜態ip
shell實現將動態ip修改為靜態ip,靜態ip修改為其它靜態ip
(1) 將動態ip修改為靜態ip的思路
① 修改ip之前,先備份ifcfg-eth0檔案
② 進入網絡卡配置目錄 /etc/sysconfig/network-scripts/ifcfg-eth0
③ 修改BOOTPROTO=static
④ 修改ONBOOT=yes
⑤ 配置靜態ip地址 IPADDR
⑥ 配置DNS NETMASK
⑦ 配置閘道器 GATEWAY
⑧ 重啟網絡卡驗證配置,驗證配置結果 service network restart
(2) 將靜態ip修改為其它靜態ip的思路
☆ 先判斷是否是靜態ip grep "dhcp" /etc/sysconfig/network-scripts/ifcfg-eth0/
☆
if[$? -ne 0]; then
sed -i `s/^IPADDR/#IPADDR/g` ifcfg-eth0
read -p "please Enter ip:"IPADDR
echo "IPADDR="$IPADDR">>/etc/sysconfig/network-scripts/
fi
☆ 重啟網絡卡驗證配置結果 service network restart
程式碼示例:
#!/bin/bash
#2018年08月14日
#change ip shell
NET_FILE="/etc/sysconfig/network-scripts"
NET_DIR="ifcfg-eth0"
cd $NET_FILE/
#change ip static for static:
grep "dhcp" $NET_DIR
if [ $? -ne 0 ];then
sed -i s/^IPADDR/#IPADDR/g $NET_DIR
read -p "Please enter ip Address,example 192.168.0.11 ip:" IPADDR
echo "IPADDR=$IPADDR">>$NET_DIR
echo "NETMASK=255.255.255.0">>$NET_DIR
echo "GATEWAY=192.168.2.254">>$NET_DIR
service network restart
else
#change ip dhcp for static
sed -i s/dhcp/static/g $NET_DIR
sed -i s/ONBOOT=no/ONBOOT=yes/g $NET_DIR
read -p "Please enter ip Address,example 192.168.0.11 ip:" IPADDR
cat>>$NET_FILE/$NET_DIR <<EOF
IPADDR=$IPADDR
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
EOF
service network restart
fi
或者
#!/bin/bash
#by author daqi
#change ip shell
NET_FILE="/etc/sysconfig/network-scripts"
NET_DIR="ifcfg-eth0"
cd $NET_FILE/
#change ip static for static:
grep "dhcp" $NET_DIR
if [ $? -ne 0 ];then
sed -i s/^IPADDR/#IPADDR/g $NET_DIR
#read -p "Please enter ip Address,example 192.168.0.11 ip:" IPADDR
echo "IPADDR=$10.30.8.80">>$NET_DIR
echo "NETMASK=255.255.255.0">>$NET_DIR
echo "GATEWAY=192.168.2.254">>$NET_DIR
service network restart
else
#change ip dhcp for static
sed -i s/dhcp/static/g $NET_DIR
sed -i s/ONBOOT=no/ONBOOT=yes/g $NET_DIR
read -p "Please enter ip Address,example 192.168.0.11 ip:" IPADDR
cat>>$NET_FILE/$NET_DIR <<EOF
IPADDR=$IPADDR
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
EOF
service network restart
fi
自動配IP指令碼
#!/bin/bash
#自動配IP
# Author: tianzhaogao (E-mail: [email protected])
line_num=$(cat /etc/sysconfig/network-scripts/ifcfg-eth0 | wc -l)
while [ "$line_num" -gt 7 ]
do
sed -i '8c \' /etc/sysconfig/network-scripts/ifcfg-eth0
line_num=$(cat /etc/sysconfig/network-scripts/ifcfg-eth0 | wc -l)
done
read -t 30 -p "Please input IP:" ipnum
n1=$(echo "$ipnum" | cut -d "." -f 1)
n2=$(echo "$ipnum" | cut -d "." -f 2)
n3=$(echo "$ipnum" | cut -d "." -f 3)
n4=$(echo "$ipnum" | cut -d "." -f 4)
if [ "$n1" -le 255 -a "$n2" -le 255 -a "$n3" -le 255 -a "$n4" -le 255 ];then
echo -e IPADDR="$ipnum""\n"NETMASK=255.255.255.0"\n"GETWAY="$n1"\."$n2"\."$n3"\.1"\n"IPV6INIT=no"\n"USERCTL=no >> /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/ONBOOT="no"/ONBOOT="yes"/g' /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=none/g' /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/ONBOOT=no/ONBOOT=yes/g' /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart
fi