1. 程式人生 > >shell實現將動態ip修改為靜態ip,靜態ip修改為其它靜態ip

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