shell腳本修改ip
⑴ 怎麼用,,shell里的命令修改這個配置文件里的,IP,僅僅是修改IP----.是用sed ,還是
全局替換
sed -i 's/ip = 211.138.250.75/ip = 你需要的IP/g' Oredsocks.conf
⑵ shell腳本配置IP
你編輯的是ifcfg-eth2,怎麼寫進去的Device是eth0??
我是6.5的測試系統,執行之後可以正常啟動,不過報錯是針對/etc/init.d/network這個腳本的
./IP_eth0.sh 104
/etc/init.d/network: line 184: command not found
/etc/init.d/network: line 184: 33mDEVICE=eth0: command not found
/etc/init.d/network: line 185: command not found
/etc/init.d/network: line 185: 33mTYPE=Ethernet: command not found
/etc/init.d/network: line 184: command not found
/etc/init.d/network: line 184: 33mDEVICE=eth1: command not found
/etc/init.d/network: line 185: command not found
/etc/init.d/network: line 185: 33mTYPE=Ethernet: command not found
/etc/init.d/network: line 184: command not found
/etc/init.d/network: line 184: 33mDEVICE=eth2: command not found
/etc/init.d/network: line 185: command not found
/etc/init.d/network: line 185: 33mTYPE=Ethernet: command not found
⑶ 想寫個shell腳本來自動配置ip,子網掩碼和網關
測試了下還可以,沒有寫條件判斷,根據情況自己再修改下
#!/bin/bash
hwaddr=`ifconfig|grepHWaddr|awk'{print$5}'`
echo"DEVICE=$1
HWADDR=$hwaddr
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=$2
NETMASK=$3
GATEWAY=$4">/etc/sysconfig/network-scripts/ifcfg-$1
/etc/init.d/networkrestart
⑷ shell腳本修改集群IP
程序邏輯有問題。
你的想法是將10.255.0.11改成11.11.11.14,10.255.0.12改成11.11.11.15,
但是你的腳本是在每一台伺服器上都遍歷了11.11.11.14~15,最後修改成的ip(11.11.11.15)才是生效的,之前的修改都被後面的修改覆蓋了。
正確的寫法是建立兩個數組分別表示原來的ip和新的ip,遍歷第一個數組的同時,按照元素序號對應取第二個數組的值,從而達到修改的目的。
兩個數組同步遍歷的寫法如下:
#!/bin/bash
array1=(10.255.0.{11..12})
array2=(11.11.11.{14..15})
i=0
for ip in ${array1[@]}
do
echo ${ip}"->"${array2[i]}
#你的修改
#你的修改
let i++
done
補充一句,你的修改不會使新ip生效,即使生效了,也因為ip生效一瞬間你的ssh連接中斷,會產生無法估計的後果。正確的做法以單引號引用一個後台重啟網卡服務的命令:
ssh $RemoteHost 'service xinetd restart 1>/dev/null 2>&1 &'
當然,不同linux版本重啟命令不一致,但基本寫法是通行的。
⑸ 要怎麼用shell腳本,將輸入的IP地址如127.0.0.1替換另一個文件里的 IP=10.0.
echo "please input new ip address/"
read ipaddr
sed -i "s/10.0.0.172/$ipaddr" filename
⑹ 用vb中的shell調用cmd函數 怎麼修改ip地址 修改本地連接的ip,不用撥號。
問題不是很明白
Windows的「netsh」命令提供了命令行下更改IP
netsh interface ip set address name="本地連接" source=static addr=192.168.1.1 mask=255.255.255.0 gateway=192.168.1.254 gwmetric=1
⑺ 幫忙寫一個shell腳本 轉換ip
echo $IPADDR|awk -F"." '{print $1"."$2"."($3+0)"."($4+0)}'
⑻ shell腳本,實現腳本ip地址變換,每次輸出不同的ip地址。
先看效果:
[root@mailtmp]#./runplayload.shiplist.txt-s192.168.33.34-40
Nosuchip【192.168.33.35】in【iplist.txt】
1--192.168.33.34
2--192.168.33.36
3--192.168.33.37
4--192.168.33.38
5--192.168.33.39
6--192.168.33.40
[root@mailtmp]#./runplayload.shiplist.txt-s192.168.33.34-192.168.33.40
Nosuchip【192.168.33.35】in【iplist.txt】
1--192.168.33.34
2--192.168.33.36
3--192.168.33.37
4--192.168.33.38
5--192.168.33.39
6--192.168.33.40
[root@mailtmp]#
看一下iplist.txt文本格式
[root@mailtmp]#catiplist.txt
192.168.33.34
192.168.33.36-192.168.33.40
192.168.33.200
192.168.33.204-210
192.168.33.231
腳本正文:
#!/bin/bash
#------------------------------------------
#Copyritht(C),[email protected]
#腳本名:
#腳本位置:
#腳本用途:
#腳本修改歷史:
#<作者><日期><版本><描述>
#老耿2015/07/131.0創建
#版權:GPL
#-------------------------------------------
./root/.bash_profile
#定義ip個數
r=6
#傳參判斷
echo$3|grep-q"[0-9]-[0-9]";stat=$?#這里在邏輯上應該先判斷存不存在$3
if[$#-ne3-o"$2"!="-s"-o${stat}-ne0];then
if[$stat-ne0];then
echo"腳本使用說明:
COMMAND文件名-sip范圍
例:sh./run_playload.shiplist.txt-s192.168.33.20-50
或sh./run_playload.shiplist.txt-s192.168.33.20-192.168.33.50"
exit
fi
fi
if[!-f$1];then
echo"文件【$1】不存在!"
exit
fi
#iplist.txt文件格式轉換
iplist=`cat$1|awk-F'[-.]''{if($0~/-/){sub(/-.*$/,"",$4);for(i=$4;i<=$NF;i++){print$1"."$2"."$3"."i}}elseprint$0}'`
#xx.xx.xxipv4前三個位元組
ip1="`echo$3|sed-r's/.[0-9]+-.*$//'`"
#起始ip最後一個位元組
ip2="`echo$3|awk-F'.''{sub(/-.*$/,"",$4);print$4}'`"
#結束ip最後一個位元組
ip3="`echo$3|awk-F'[-.]''{print$NF}'`"
#如果起始ip大於結束ip,則兩個互換
if(($ip2>$ip3));then
ip_tmp=$ip2
ip2=$ip3
ip3=$ip_tmp
fi
#合並完整的ip,存在ip()里
ip=()
foriin`seq${ip2}${ip3}`
do
ipp="${ip1}.${i}"
echo"${iplist}"|grep-wq"${ipp}"
if[$?-ne0];then
echo"Nosuchip【${ipp}】in【$1】"
else
ip=(${ip[*]}${ipp})
fi
done
#判斷ip()不為空的情況
if[-n"${ip[*]}"];then
#定義ip個數
#r=6
#判斷ip取值個數,分兩種情況處理
if((${r}<=${#ip[@]}));then
foriin`seq${r}`
do
letj=$i-1
echo"${i}--${ip[j]}"
done
else
for((i=0;i<${#ip[@]};i++))
do
letj=$i+1
echo"${j}--${ip[i]}"
done
echo"WARNING:受范圍限制,未能取到完整的${r}個ip!"
fi
fi
⑼ 用shell怎麼在linux下修改eth0的ip地址
!#/bin/bash
ifconfig eth0 x.x.x.x netmask x.x.x.x up #立即生效
ipconf = "/etc/sysconfig/network-scripts/ifcfg-eth0"
echo "DEVICE=eth0" > $ipconf
echo "ONBOOT=yes" > $ipconf
echo "BOOTPROTO=static" > $ipconf
echo "IPADDR=192.168.0.117" > $ipconf
echo "NETMASK=255.255.255.0" > $ipconf
echo "GATEWAY=192.168.0.254" > $ipconf
echo "service network restart" > $ipconf
⑽ 求大神給一個shell腳本,實現腳本ip地址變換,每次輸出不同的ip地址。
先看效果:
[root@mailtmp]#./runplayload.shiplist.txt-s192.168.33.34-40
Nosuchip【192.168.33.35】in【iplist.txt】
1--192.168.33.34
2--192.168.33.36
3--192.168.33.37
4--192.168.33.38
5--192.168.33.39
6--192.168.33.40
[root@mailtmp]#./runplayload.shiplist.txt-s192.168.33.34-192.168.33.40
Nosuchip【192.168.33.35】in【iplist.txt】
1--192.168.33.34
2--192.168.33.36
3--192.168.33.37
4--192.168.33.38
5--192.168.33.39
6--192.168.33.40
[root@mailtmp]#
看一下iplist.txt文本格式
[root@mailtmp]#catiplist.txt
192.168.33.34
192.168.33.36-192.168.33.40
192.168.33.200
192.168.33.204-210
192.168.33.231
腳本正文:
#!/bin/bash
#------------------------------------------
#Copyritht(C),[email protected]
#腳本名:
#腳本位置:
#腳本用途:
#腳本修改歷史:
#<作者><日期><版本><描述>
#老耿2015/07/131.0創建
#版權:GPL
#-------------------------------------------
./root/.bash_profile
#定義ip個數
r=6
#傳參判斷
echo$3|grep-q"[0-9]-[0-9]";stat=$?#這里在邏輯上應該先判斷存不存在$3
if[$#-ne3-o"$2"!="-s"-o${stat}-ne0];then
if[$stat-ne0];then
echo"腳本使用說明:
COMMAND文件名-sip范圍
例:sh./run_playload.shiplist.txt-s192.168.33.20-50
或sh./run_playload.shiplist.txt-s192.168.33.20-192.168.33.50"
exit
fi
fi
if[!-f$1];then
echo"文件【$1】不存在!"
exit
fi
#iplist.txt文件格式轉換
iplist=`cat$1|awk-F'[-.]''{if($0~/-/){sub(/-.*$/,"",$4);for(i=$4;i<=$NF;i++){print$1"."$2"."$3"."i}}elseprint$0}'`
#xx.xx.xxipv4前三個位元組
ip1="`echo$3|sed-r's/.[0-9]+-.*$//'`"
#起始ip最後一個位元組
ip2="`echo$3|awk-F'.''{sub(/-.*$/,"",$4);print$4}'`"
#結束ip最後一個位元組
ip3="`echo$3|awk-F'[-.]''{print$NF}'`"
#如果起始ip大於結束ip,則兩個互換
if(($ip2>$ip3));then
ip_tmp=$ip2
ip2=$ip3
ip3=$ip_tmp
fi
#合並完整的ip,存在ip()里
ip=()
foriin`seq${ip2}${ip3}`
do
ipp="${ip1}.${i}"
echo"${iplist}"|grep-wq"${ipp}"
if[$?-ne0];then
echo"Nosuchip【${ipp}】in【$1】"
else
ip=(${ip[*]}${ipp})
fi
done
#判斷ip()不為空的情況
if[-n"${ip[*]}"];then
#定義ip個數
#r=6
#判斷ip取值個數,分兩種情況處理
if((${r}<=${#ip[@]}));then
foriin`seq${r}`
do
letj=$i-1
echo"${i}--${ip[j]}"
done
else
for((i=0;i<${#ip[@]};i++))
do
letj=$i+1
echo"${j}--${ip[i]}"
done
echo"WARNING:受范圍限制,未能取到完整的${r}個ip!"
fi
fi