设为首页 收藏本站
查看: 974|回复: 0

[经验分享] ubuntu 多段IP一键添加脚本

[复制链接]

尚未签到

发表于 2017-11-19 16:30:36 | 显示全部楼层 |阅读模式
  #!/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是否添加上了。然后重启机器。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-408587-1-1.html 上篇帖子: TensorFlow入门:Ubuntu 16.04安装TensorFlow(Anaconda,非GPU) 下篇帖子: Ubuntu 安装 JDK 7 / JDK8 的两种方式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表