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 ...
随机推荐
- Windows API之DuplicateHandle
在进程之间共享内核对象句柄的一种方法:DuplicateHandle 简单地说,该函数取得某个进程句柄表中的一个表项,然后把它拷贝到另一个进程的句柄表中. BOOL WINAPI DuplicateH ...
- hdu 1534(差分约束+spfa求最长路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1534 思路:设s[i]表示工作i的开始时间,v[i]表示需要工作的时间,则完成时间为s[i]+v[i] ...
- Web API 2中的操作结果
how ASP.NET Web API converts the return value from a controller action into an HTTP response message ...
- jQuery整理笔记八----jQuery的Ajax
Ajax,我一直读的是"阿贾克斯",据当时大学老师讲该读音出处是依据当年风靡欧洲的荷兰足球俱乐部阿贾克斯的名字来的,我认为说法挺靠谱的. jQuery封装了Ajax的交互过程,用户 ...
- [转载]H5项目常见问题汇总及解决方案
本文转载自:http://www.open-open.com/lib/view/open1449325854077.html Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 / ...
- MySQL中备份的几种方式
前言: 并不是每家公司都高大上,并不是每家公司都会用一些很前沿的技术来做备份这一块,有些企业或者有些行业或者团队本身由于各方面的原因使用简单或者复杂的方式来做备份这块,这次这个文档算是对以前工作的总结 ...
- 005-快捷键,host,查看版本
一.系统快捷键 设置 键盘--查看 shift+ctrl +print 区域截图至剪切版 ctrl+alt+箭头 切换工作区 自定义打开终端快捷键 设置->键盘->自定义:名称: ...
- Java基础—序列化与反序列化(转载)
转载自: Java序列化与反序列化 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程:而Java反序列化是指把字节序列恢复为Java对象的过程. 2.为什么需要序列化 ...
- TLS and SSL
SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层.SSL通过互相认证.使用数字签名确保完整性.使用加密确保私密性,以实现客户 ...
- Architecture Patterns
This chapter provides guidelines for using architecture patterns. Introduction Patterns for system a ...