溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux下IP如何設(shè)置腳本

發(fā)布時(shí)間:2021-07-16 14:19:29 來(lái)源:億速云 閱讀:172 作者:小新 欄目:服務(wù)器

小編給大家分享一下Linux下IP如何設(shè)置腳本,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Linux下IP設(shè)置腳本的實(shí)例及遇到問(wèn)題解決辦法

背景

     一個(gè)Java web項(xiàng)目有一個(gè)功能是IP修改,Linux的IP修改腳本如下:

#!/bin/bash 
 
#useing parameter ip:netmask:gateway:dns1  
#system version:centos6,7/redhat6,7 
 
#read parameter 
ipaddr=`echo $1|cut -d ":" -f 1` 
netmask=`echo $1|cut -d ":" -f 2` 
gateway=`echo $1|cut -d ":" -f 3` 
dns1=`echo $1|cut -d ":" -f 4` 
dns2=`echo $1|cut -d ":" -f 5` 
targetDevice=$2 
 
#get device(active) name -- centos6 and centos7 
DEVICE=`dmesg|grep Link|grep Up|cut -d ":" -f 3,4|cut -d " " -f 2|cut -d ":" -f 1|uniq|head -n 1` 
#if parameter has device name,use it ,else use first alive device 
if [ "$targetDevice" != "" ]; then 
  DEVICE=$targetDevice 
  echo 'device use target device :' $DEVICE 
fi 
 
#backup net_file 
mv  /etc/sysconfig/network-scripts/'ifcfg-'$DEVICE  /etc/sysconfig/network-scripts/'ifcfg-'$DEVICE'.bak' -f 
 
#config(net_file) 
cat <<end>> /etc/sysconfig/network-scripts/'ifcfg-'$DEVICE 
DEVICE=$DEVICE 
ONBOOT=yes 
TYPE=Ethernet 
BOOTPROTO=none 
IPV6INIT=no 
DEFROUTE=yes 
IPADDR=$ipaddr 
GATEWAY=$gateway 
NETMASK=$netmask 
DNS1=$dns1 
DNS2=$dns2 
end 
 
#update /etc/hosts 
cat /sensor/bin/standardhosts>/etc/hosts  
echo '127.0.0.1 '$(hostname)>>/etc/hosts 
 
#grant the net_file 
chmod 755 /etc/sysconfig/network-scripts/'ifcfg-'$DEVICE 
 
#restart network 
/etc/init.d/network restart


     實(shí)際在這個(gè)shell腳本執(zhí)行過(guò)程中,碰到幾個(gè)問(wèn)題,是目標(biāo)服務(wù)器的網(wǎng)絡(luò)服務(wù)相關(guān)的配置問(wèn)題。有四種不同的錯(cuò)誤,整理如下,以備后用。腳本的本質(zhì)就是將目的IP信息寫(xiě)入到網(wǎng)卡文件ifcfg-eth3文件中。(eth3是測(cè)試機(jī)器上的通訊網(wǎng)卡名稱),作為參數(shù)需要傳遞給腳本的。

問(wèn)題一

     在虛擬機(jī)上測(cè)試,執(zhí)行這個(gè)腳本過(guò)程中遇到的問(wèn)題。本地安裝的是VirtualBox,復(fù)制了5個(gè)虛擬機(jī)的節(jié)點(diǎn)?;谶@個(gè)背景,那么在執(zhí)行腳本完成后,重啟網(wǎng)卡服務(wù)service network restart命令,總是遭遇失敗,失敗信息提示:

         Error:No suitable device found: no device found for connection "System eth0"

     這是因?yàn)樘摂M機(jī)在復(fù)制過(guò)程中復(fù)制了網(wǎng)卡,但實(shí)際上ifconfig-a只顯示一個(gè)網(wǎng)卡。解決辦法:

     第一步,執(zhí)行ifconfig –a 查看當(dāng)前系統(tǒng)的網(wǎng)卡名稱,我的當(dāng)前虛擬機(jī)節(jié)點(diǎn)是eth3,lo.

     第二步,保留/etc/sysconfig/network-scripts中ifcfg-eth3,ifcfg-lo,其他不存在的網(wǎng)卡文件需要?jiǎng)h除。復(fù)制過(guò)來(lái)的是eth0,rm –rf ifcfg-eth0文件。

     第三步,ifcfg-eth3文件內(nèi)容,保證DEVICE=eth3參數(shù)名稱跟文件名稱一致。

     第四步,修改網(wǎng)卡策略文件vi /etc/udev/rules.d/70-persistent-net.rules找到eth3網(wǎng)卡的配置,修正MAC地址和eth3的MAC地址一致。 

    第五步,驗(yàn)證:執(zhí)行service network restart驗(yàn)證網(wǎng)卡重啟成功。

問(wèn)題二

nm_object_array_demarshal: couldn't create object for /org/freedesktop/NetworkManager/ActiveConnection/39
Error: Obtaining active connection for'/org/freedesktop/NetworkManager/ActiveConnection/39' failed.
                             [FAILED]

問(wèn)題三

 See ‘systemctlstatus network.service‘ and ‘journalctl-xn‘ for details

這個(gè)問(wèn)題,執(zhí)行journalctl–xe> /home/journalctl.log

查看日志文件中,找到真正的錯(cuò)誤是它:

Bringing up interface enp4s0f0: RTNETLINK answers: File exists

 問(wèn)題四

Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization.

 centos下出現(xiàn)該故障的二、三、四三種問(wèn)題的根源一樣,就是啟動(dòng)網(wǎng)絡(luò)的兩個(gè)服務(wù)有沖突:/etc/init.d/network和/etc/init.d/NetworkManager這兩個(gè)服務(wù)有沖突。

    解決辦法:關(guān)掉NetworkManager服務(wù),通過(guò)命令service NetworkManager stop完成。再執(zhí)行service network restart驗(yàn)證能夠正常重啟網(wǎng)卡服務(wù)。

結(jié)論

    驗(yàn)證IP設(shè)置腳本,提供兩個(gè)參數(shù)一個(gè)是IP信息和網(wǎng)卡名稱執(zhí)行如下命令:

     sh reset_ip.sh  192.168.10.170:255.255.255.0:192.168.10.1:10.0.1.90  eth3可以修改虛擬機(jī)IP地址。一個(gè)簡(jiǎn)單的IP設(shè)置腳本,執(zhí)行過(guò)程中幾乎把網(wǎng)上跟網(wǎng)卡相關(guān)的問(wèn)題,都遭遇了。各種嘗試終于找到原因了,主要根源就是NetworkManage這個(gè)服務(wù)的問(wèn)題。

以上是“Linux下IP如何設(shè)置腳本”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI