Posted in: 系统运维

UBUNTU系统批量绑定IP教程(多段IP一键添加脚本)

脚本下载:ubuntu一键绑定IP段的脚本

脚本代码如下:

#!/bin/bash
export device
echo "请输入网络设备名:"
devices="`ifconfig -s|sed '1d'|awk '{print($1)}'`"
select device in $devices;
do
if [ -n "$device" ];then
break
fi
done
export ipcfg_pre="/etc/network/interfaces"
export ipcfg_bak=${ipcfg_pre}.bak-by-autoipcfg
awktmp=`mktemp`
msg=`mktemp`
ip_txt=`mktemp`

if test ! -e "$ipcfg_bak";then
cp "$ipcfg_pre" "$ipcfg_bak" || exit $?
echo "未发现配置文件备份,自动备份文件名为:"
echo "$ipcfg_bak"

fi
cat "$ipcfg_bak">"$ipcfg_pre"
#重置 配置文件为默认配置
cat >$awktmp <<EOF
#!/usr/bin/awk -f
BEGIN{
ipcfg_pre="${ipcfg_pre}"
device=ENVIRON["device"]
number_of_dev=1;
numofpc[24]=253
numofpc[26]=61
numofpc[27]=29
numofpc[28]=13
numofpc[29]=5

netmask_table[0]="0.0.0.0"
netmask_table[1]="128.0.0.0"
netmask_table[2]="192.0.0.0"
netmask_table[3]="224.0.0.0"
netmask_table[4]="240.0.0.0"
netmask_table[5]="248.0.0.0"
netmask_table[6]="252.0.0.0"
netmask_table[7]="254.0.0.0"
netmask_table[8]="255.0.0.0"
netmask_table[9]="255.128.0.0"
netmask_table[10]="255.192.0.0"
netmask_table[11]="255.224.0.0"
netmask_table[12]="255.240.0.0"
netmask_table[13]="255.248.0.0"
netmask_table[14]="255.252.0.0"
netmask_table[15]="255.254.0.0"
netmask_table[16]="255.255.0.0"
netmask_table[17]="255.255.128.0"
netmask_table[18]="255.255.192.0"
netmask_table[19]="255.255.224.0"
netmask_table[20]="255.255.240.0"
netmask_table[21]="255.255.248.0"
netmask_table[22]="255.255.252.0"
netmask_table[23]="255.255.254.0"
netmask_table[24]="255.255.255.0"
netmask_table[25]="255.255.255.128"
netmask_table[26]="255.255.255.192"
netmask_table[27]="255.255.255.224"
netmask_table[28]="255.255.255.240"
netmask_table[29]="255.255.255.248"
netmask_table[30]="255.255.255.252"
netmask_table[31]="255.255.255.254"

}
function ip_str(iplist){
return sprintf("%s.%s.%s.%s",ip_list[1],ip_list[2],ip_list[3],ip_list[4]);
}
{
ipfile=ipcfg_pre
split(\$0,ip,"/");
ip_mask=ip[2];
split(ip[1],ip_list,".");
split(ip[1],masklist,".");
#ip_list 列表保存了 ip 的四个 字节值
ip_start=ip_list[4]+2;
ip_end=ip_start+numofpc[ip_mask]-1;
ip_list[4]++
gateway=ip_str(ip_list)
netmask=netmask_table[ip_mask]

for(i=ip_start;i<=ip_end;i++){
device_name=sprintf("%s:%s",device,number_of_dev )
printf("\n")>>ipfile
printf("auto %s\n",device_name)>>ipfile
printf("iface %s inet static\n",device_name)>>ipfile
ip_list[4]=i
printf("address %s\n",ip_str(ip_list))>>ipfile
printf("netmask %s\n",netmask)>>ipfile
printf("gateway %s\n",gateway)>>ipfile
number_of_dev++
}

}
EOF

chmod a+x $awktmp 
msg=`mktemp`

cat >$msg <<EOF
请输入IP地址和掩码每行一个(不可出现空白行)
如:
45.34.89.40/29
23.91.3.0/28
23.91.8.32/28
23.91.18.160/28
23.91.28.128/28
EOF
vi +":!cat $msg" $ip_txt
test -e $ip_txt && awk -f $awktmp $ip_txt
sudo /etc/init.d/networking restart
rm -f $msg $awktmp $ip_txt
rm -f ubuntu.sh

此脚本只适用于
45.34.89.40/29
23.91.3.0/28
23.91.8.32/28
23.91.18.160/28
23.91.28.128/28
这种格式的IP段添加。

使用方法:首先确保,是第一次添加IP,IP文件里面只有一个主IP。
脚本在root账户下执行

  1. sudo dpkg-reconfigure dash 在选择项中选No
  2. 脚本命名为ubuntu.sh 执行sh ubuntu.sh 会提示选择网卡。选(1)。
  3. 按回车键,然后按 i 进入编辑模式,输入IP段。iP段一个一行,不要有空格。 保存。
    就会执行添加命令。 脚本里面是重启网卡命令,如果重启网卡命令不管用。,看下配置文件里面的IP是否添加上了。然后重启机器。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

CAPTCHAis initialing...