centos6 多段Ip添加脚本
#!/bin/bash
export device=`ifconfig|grep eth0|head -n 1|awk '{print ($1)}'`
export ipcfg_pre="/etc/sysconfig/network-scripts/ifcfg-eth1-range"
awktmp=`mktemp`
msg=`mktemp`
ip_txt=`mktemp`
ifcfgs="$(find ${ipcfg_pre%/*} -name ${ipcfg_pre##*/}*)"
if test ! -z "$ifcfgs";then
echo "发现如下已有配置文件是否删除(yes/no)?"
echo "$ifcfgs"
select var in "yes" "no"
do
if test "$var" = "yes";then
rm -f $ifcfgs
break;
else
break;
fi
done
fi
#脚本保存进 临时文件 不再使用a.awk文件。
cat >$awktmp <<EOF
#!/usr/bin/awk -f
BEGIN{
ipcfg_pre="${ipcfg_pre}"
#你需要修改 ipcfg_pre 为自己的路径前缀
device=ENVIRON["device"]
clone_num=1;
numofpc[24]=253
numofpc[24]=125
numofpc[26]=61
numofpc[27]=29
numofpc[28]=13
numofpc[29]=5
}
function ip_str(iplist){
return sprintf("%s.%s.%s.%s",ip_list[1],ip_list[2],ip_list[3],ip_list[4]);
}
function gen_mask(num,mask_bin, _ARGVEND_,sum,bits){
#把掩码由数字转换成数组
_i=1;
mask_bin[1]=0;
for (;_i*8 <=num && _i<=4;_i++){
mask_bin[_i]=255;
}
bits=num-(_i-1)*8;
sum=0;
for(;bits>0;bits--){
sum=sum+2^(8-bits);
}
mask_bin[_i]=sum;
_i++;
for(;_i<=4;_i++){
mask_bin[_i]=0;
}
}
{
ipfile=sprintf("%s%s",ipcfg_pre,NR);
split(\$0,ip,"/");
ip_mask=ip[2];
split(ip[1],ip_list,".");
#ip_list 列表保存了 ip 的四个 字节值
ip_start=ip_list[4]+2;
ip_end=ip_start+numofpc[ip_mask]-1;
printf("DEVICE=%s\n",device)>ipfile
printf("BOOTPROTO=static\n")>>ipfile
printf("CLONENUM_START=%d\n",clone_num)>>ipfile
ip_list[4]=ip_start;
printf("IPADDR_START=%s\n",ip_str(ip_list))>>ipfile
ip_list[4]=ip_end;
printf("IPADDR_END=%s\n",ip_str(ip_list))>>ipfile
clone_num+=numofpc[ip_mask];
printf("ONBOOT=yes\n")>>ipfile
gen_mask(ip_mask,ip_list)
netmask=ip_str(ip_list)
printf("NETMASK=%s\n",netmask)>>ipfile
}
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
#service network restart
test -e $ip_txt && awk -f $awktmp $ip_txt
service network restart
rm -f $awktmp $msg $ip_txt
rm -f ipcfg.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段添加,请注意脚本网卡名称和机器网卡名称是否一致
使用方法,命名为ipcfg.sh
1. 会提示IP文件是否已经存在,让选择是否删除。我们只用于第一次添加。尽量不要去补充添加。
2. 按回车键,然后按 i 进入编辑模式,输入IP段。iP段一个一行,不要有空格。 保存。
centos6 多段Ip添加脚本的更多相关文章
- centos6.5环境通过shell脚本备份php的web及mysql数据库并做远程备份容灾
centos6.5环境通过shell脚本备份php的web及mysql数据库并做远程备份容灾 系统:centos6.5 1.创建脚本目录 mkdir -p /usr/local/sh/ 创建备份web ...
- [原创]开源跨平台大型网络端口扫描器K8PortScan(支持批量A段/B段/C段/IP列表)
0x000 K8PortScan Python版Cscan端口扫描器 Code: https://github.com/k8gege/K8PortScan K8portScan 1.0 Date: 2 ...
- VMware 非简易安装centos6(静态ip配置)
1.选择新建虚拟机 在弹出框中我选择推荐安装 然后点击下一步 2.选择稍后安装操作系统(不然会默认简易安装) 接着一直下一步就可以了,最后到这个页面 4.如下图选择事先下载好的安装文件 5.配置桥接模 ...
- 通过Arcpy在ArcMap工具箱中添加脚本计算面图层的起终点坐标
关键词: Arcpy,ArcMap Toolbox, Coordinates of Polygon 需求分析: Arcmap中添加有三个图层:图层“GY乡级河道”(面图层)是全县13个乡镇全部的乡级河 ...
- Linux下批量ping某个网段ip的脚本
比如现在需要对172.16.50.0/24网段的ip进行检查,检查哪些ip现在被占用,哪些ip没有被占用,可以通过ping命令来检查,脚本如下: [root@uatdns01 opt]# vim /o ...
- Unity3d创建物体,寻找物体,加载物体,添加脚本
GetCreateObject: using UnityEngine; public class GetCreateObject : MonoBehaviour { GameObject emptyG ...
- CentOS6配置静态IP
CentOS6配置静态IP 1. 编辑网卡配置 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=不需要改 TYPE=Et ...
- 写了个爬虫代理ip的脚本给大家使用
写了个爬虫代理ip的脚本给大家使用 一.代码 import requests from lxml.html import etree url = 'http://www.kuaidaili.com/f ...
- 修改host指定域名指向ip,Windows脚本与Linux脚本
修改host指定域名指向ip,Windows脚本与Linux脚本 一,Windows系统修改hosts文件 Windows系统下hosts文件位置:C:\Windows\System32\driver ...
随机推荐
- cocos2d-x - android 学习(集成NDK、配置开发环境)
先来贴上一大神的博客:日月之明 --- http://www.cnblogs.com/lhming/tag/cocs2d-x/ 需要工具和软件包:Eclipse.Android SDK.Android ...
- PDP2
1. 程序入口 配置文件config.xml中: 2. index.html中显示,引入的cordova.js 就说明了 cordova apps 3. 看 main.ts
- [转]JBOSS4.3关于java.lang.OutOfMemoryError: PermGen space解决方法
vi /jboss/bin/run.bat 找到: set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -XX:MaxPermSize=256m 改为: set J ...
- hdu 5185(DP)
不错的一道dp题目,一开始想了一种N*N的dp,后面就一直想怎么优化,然后就一直都在坑中了. 这题题解还是看早了,应该再多想会的,多换种表示状态的方法再想想. dp[i][j]=dp[i-j][j]+ ...
- java数据结构之枚举
Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素. import java.util.Vector; import java.util.Enumerat ...
- Cocos2d-x Lua中实例:帧动画使用
下面我们通过一个实例介绍一下帧动画的使用,这个实例如下图所示,点击Go按钮开始播放动画,这时候播放按钮标题变为Stop,点击Stop按钮可以停止播放动画. 帧动画实例 下面我们再看看具体的程序代码,首 ...
- 转载:HTML/CSS 速写神器:Emmet
转载在http://bubkoo.com/2014/01/04/emmet-a-toolkit-for-improving-html-css-workflow/ 在前端开发的过程中,一个最繁琐的工作就 ...
- 全局enter回车键js
js实现敲回车键触发事件 document.onkeydown = function(e){ var ev = document.all ? window.event : e; ){ alert(&q ...
- 阻止element组件中的<el-input/>的粘贴功能
需求: 阻止element组件中的<el-input/>的粘贴功能 实现思路: <el-input/>组件是由外层<div>和内层的<input>组成的 ...
- 前端基础 & 初识JS(JavaScript)
JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名ScriptEase(客 ...