auto_modify_ip Shell脚本安装
#!/bin/bash
#2019.7. :
#This author is DKS
#auto modify ip of linux
###############################
IP_NAME="ifcfg-ens33"
IP_DIR="/etc/sysconfig/network-scripts/" TEMP=$(mktemp -t test.XXXXXX)
TEMP1=$(mktemp -t test1.XXXXXX)
TEMP2=$(mktemp -t test2.XXXXXX)
#
cd $IP_DIR
if [ ! -d ip_back ];then
mkdir ip_back
fi
#获取备份编号
judge_var(){
VAR=`find ${IP_DIR}ip_back/ -type f -name "ifcfg-ens33*"|awk -F\. '{print $2}'|sort |sed -n '$p'|grep -oE "[0-9]{0,3}"`
if [ $VAR -ge ];then
VAR=$(expr $VAR + )
else
VAR=
fi
IP_BACK="${IP_DIR}ip_back/ifcfg-ens33.back$VAR"
ip_back_name="ifcfg-ens33.back$VAR"
}
#
#ip地址备份
ip_back(){
judge_var
cp $IP_NAME $IP_BACK
dialog --title "备份为" --msgbox "$ip_back_name"
}
#
#ip地址状态判断
test_ip_status(){
STATUS=`sed -n '/BOOTPROTO/p' ${IP_NAME}|awk -F\= '{print $2}'`
dialog --title "当前状态" --msgbox "${STATUS}"
while [ ]
do
dialog --inputbox "修改状态为dhcp或static" >$TEMP1
if [ $? -eq ];then
BREAK=
break
fi
status=`cat $TEMP1`
if [[ $status == static ]];then
local temp="static"
BREAK=
break
elif [[ $status == dhcp ]];then
local temp="dhcp"
BREAK=
break
else
dialog --msgbox "输入错误"
fi
done
if [ $BREAK -eq ];then
dialog --yesno "您的输入为:\n$temp "
if [ $? -eq ];then
ip_back
sed -i "s/BOOTPROTO=${STATUS}/BOOTPROTO=${temp}/g" $IP_NAME
dialog --title "修改后状态" --msgbox "$(cat $IP_NAME)"
elif [ $? -eq ];then
dialog --msgbox "已取消修改"
fi
fi
}
#
#ip地址修改
cat_modify_ip(){
cat >> ${IP_NAME} <<eof
IPADDR="$1"
NETMASK="255.255.255.0"
GATEWAY="192.168.2.1"
DNS1="114.114.114.114"
eof
}
modify_ip(){
STATUS=`sed -n '/BOOTPROTO/p' ${IP_NAME}|awk -F\= '{print $2}'`
dialog --title "当前状态" --msgbox "\n $STATUS"
if [[ $STATUS == static ]];then
while [ ]
do
dialog --title "请输入IP:" --inputbox "例:192.168.2.XXX" >$TEMP2
if [ $? -eq ];then
break
fi
ip=$(cat $TEMP2)
judge_ip=`echo $ip |grep -E "\<([0-9]{1,3}\.){3}([0-9]{1,3})\>"`
if [[ $ip == $judge_ip ]];then
local txt=
dialog --title "您的输入为:" --msgbox "\n$ip"
else
local txt=
fi
if [ $txt -eq ];then
if [ -z `sed -n "/IPADDR/p" $IP_NAME` ];then
ip_back
cat_modify_ip $ip
dialog --title "已修改为" --msgbox "$(cat $IP_NAME)"
break
else
ip_back
old_ip=`sed -n '/IPADDR/p' $IP_NAME | awk -F\= '{print $2}'`
sed -i "s/IPADDR=${old_ip}/IPADDR=${ip}/g" $IP_NAME
dialog --title "已修改为" --msgbox "$(cat $IP_NAME)"
break
fi
elif [ $txt -eq ];then
dialog --msgbox "输入错误"
fi
done
elif [[ $STATUS == dchp ]];then
break
fi
}
#
#ip地址回滚
rool_back(){
judge_var
VAR=$(expr $VAR - )
if [ $VAR le ];then
VAR=
fi
#获取备份
IP_BACK="${IP_DIR}ip_back/ifcfg-ens33.back$VAR"
ip_back_name="ifcfg-ens33.back$VAR" mv $IP_BACK $IP_NAME
VAR=$[ $VAR - ] dialog --title "回滚备份" --msgbox "$ip_back_name"
dialog --title "IP已回改为" --msgbox "$(cat $IP_NAME)"
}
##
#重启网卡
restart_network(){
dialog --title "是否重启当前网络配置" --yesno "$(cat $IP_NAME)"
if [ $? -eq ];then
service network restart &>/dev/null
if [ $? -eq ];then
dialog --msgbox "重启成功"
else
dialog --msgbox "重启失败"
fi
elif [ $? -eq ];then
dialog --msgbox "已取消操作"
fi
}
##
##程序实现
while [ ]
do
dialog --menu "自动修改服务器IP脚本" "检测IP状态并修改" "修改IP地址" "IP地址回滚" "重启网卡" "退出" >$TEMP
if [ $? -eq ];then
break
fi
selection=$(cat $TEMP)
case $selection in
)
test_ip_status
;;
)
modify_ip
;;
)
rool_back
;;
)
restart_network
;;
)
break
;;
*)
dialog --msgbox "输入错误"
esac
done
rm -r $TEMP > /dev/null
rm -r $TEMP1 > /dev/null
rm -r $TEMP2 > /dev/null
auto_modify_ip Shell脚本安装的更多相关文章
- shell脚本安装python、pip--这种写法是错误的---每一个命令执行完都要判断是否执行成功,否则无法进行下一步
shell脚本安装python.pip--不需要选择安装项目--不管用总报错,必须带上判断符号,while没有这种用法,写在这里为了以后少走弯路,所以不要用下面的执行了 首先把pip-.tgz 安装包 ...
- Linuxqq shell脚本安装后的卸载
官方下载和帮助页面: 传送门 linuxqq_2.0.0-b1 的时候,并没有发布 MIPS64 的 DEB 包,只能用 .sh 安装,需要手动删除卸载.愚人节发布的 beta2 新增了 MIPS64 ...
- zabbix通过shell脚本安装异常问题定位
htxk-106主机信息现象如下: 通过zabbix_get命令 zabbix_get [7189]: Check access restrictions in Zabbix agent config ...
- Docker学习3-简单shell脚本安装mysql5.7与docker小技巧
前言 玩过Windows中的 .bat 的小伙伴是不是觉得很有意思呢,github中一键推送.同步拉取等等操作,哈哈,当然shell脚本也是很类似,可以运行一个脚本就可以自动给我们部署好环境啦!但是这 ...
- shell 脚本安装Tomcat和java
脚本安装Tomcat和java#!/bin/bash##SCRIPT:install_jdk-8u181-linux-x64_apache-tomcat-8.0.53#AUTHOR:Shinyinfo ...
- shell脚本安装部署反向代理 监控进程 计划任务
1.编写脚本自动部署反向代理.web.nfs: 要求: I.部署nginx反向代理三个web服务,调度算法使用加权轮询: 反向代理服务器脚本配置脚本 #!/bin/bash #安装eple和nginx ...
- shell脚本安装python、pip--交互式的
首先把pip-.tgz 安装包放在 /usr/local 下面,按照顺序先安装pip,再安装python.不要先安装或只安装python,否则很容易出错, [root@bogon ~]# cat pi ...
- 用shell脚本安装apache
我们首先创建一个文件为test.sh,执行此文件的方法有以下四种方式: 1../test.sh(必须chmod赋予执行权限) 2.. test.sh 3.sourse test.sh 4.[shell ...
- shell脚本安装jdk
#!/bin/bash BASE_SERVER=192.168.1.11 yum install -y wget wget $BASE_SERVER/soft-all/jdk-7u45-linux-x ...
随机推荐
- mha格式的CT体数据转为jpg切片
mha格式的CT体数据转为jpg切片 mha格式 .mha文件是一种体数据的存储格式,由一个描述数据的头和数据组成,一般我们拿到的原始医学影像的数据是.dcm也就是dicom文件,dicom文件很复杂 ...
- [windows篇] 使用Hexo建立个人博客,自定义域名https加密,搜索引擎google,baidu,360收录
为了更好的阅读体验,欢迎阅读原文.原文链接在此. [windows篇] 使用Hexo建立个人博客,自定义域名https加密,搜索引擎google,baidu,360收录 Part 2: Using G ...
- git log 附加命令归纳
git查看历史记录的时候查看每次提交的内容差异: git log -p git限制显示的条数 : git log -p -2 [-2] git简单显示每次提交做了哪些改动: git log --sta ...
- 20190630A(贪心)
题目描述 约翰留下他的N只奶牛上山采木.他离开的时候,她们像往常一样悠闲地在草场里吃草.可是,当他回来的时候,他看到了一幕惨剧:牛们正躲在他的花园里,啃食着他心爱的美丽花朵!为了使接下来花朵的损失最小 ...
- 分类算法之逻辑回归(Logistic Regression
分类算法之逻辑回归(Logistic Regression) 1.二分类问题 现在有一家医院,想要对病人的病情进行分析,其中有一项就是关于良性\恶性肿瘤的判断,现在有一批数据集是关于肿瘤大小的,任务就 ...
- NuGet Package Explorer使用教程下载
1.下载NuGet Package Explorer http://www.pc0359.cn/downinfo/91514.html 2.双击NuGet Package Explorer出现启动界面 ...
- 解决mybatis中 数据库column 和 类的属性名property 不一致的两种方式
解决方式way1:resultMap (1)studentMapper.xml <!-- 当数据库的字段名 和 类的属性名 不一致的时候的解决方式:2种 way1--> <selec ...
- 接口测试专题(Java & jmeter & Linux基础)
以下是我和两个朋友原创文章合集,主题是接口测试,有Java接口测试案例和jmeter的案例,还有接口测试相关服务器操作基础.欢迎点赞.关注和转发. 接口测试 httpclient处理多用户同时在线 h ...
- 【最新发布】最新Python学习路线,值得收藏
随着AI的发展,Python的薪资也在逐年增加,但是很多初学者会盲目乱学,连正确的学习路线都不清楚,踩很多坑,为此经过我多年开发经验以及对目前行业发展形式总结出一套最新python学习路线,帮助大家正 ...
- c#控制台玩飞行棋游戏
using System; namespace Game{ class Program { //用静态字段模拟全局变量 public static int[] Maps = new int[100]; ...