随机修改nginx端口脚本及思路
2016-03-31 18:33
671 查看
需求:随机修改nginx端口,一小时一次,然后发邮件通知
脚本思路,先在/root目录下建立个1.txt文件,随机填入4位数字
建个2.sh脚本,脚本内容如下:
上主脚本port_change.sh
脚本思路如下:
先把nginx的端口修改成1.txt里的数字,也就是随机填入的数字,然后运行下2.sh,生成2.txt里的内容,也就是一个随机生成的数字,然后运行主脚本,这个脚本会先定义两个变量$c,$d,也就是1.txt和2.txt里数字,然后判断要修改的端口有没有跟现在打开的端口冲突,如果没有就将$d(新生成的随机数)替换掉$c(刚刚手工填的数字),然后将$d的数字重定向到1.txt里,也就是将$c的数字变成$d的数字,再运行2.sh脚本,重新生成新的$d,把这个脚本放在crontab里,一小时运行一次,下次运行的时候,又会用新生成的$d替换掉$c,这样就达到了自动随机修改nginx端口的目的
注:如果想用mail发邮件,需要先安装mailx这个软件,然后在/etc/mailx里定义下账号信息,like this:
set from=xxxxxxxxx@qq.com smtp=smtp.qq.com
set smtp-auth-user=xxxxxxx@qq.com smtp-auth-password=xxxxxxx
set smtp-auth=login
脚本思路,先在/root目录下建立个1.txt文件,随机填入4位数字
建个2.sh脚本,脚本内容如下:
#!/bin/bash cd b=`echo $RANDOM |cut -c 1-4` echo $b >2.txt
上主脚本port_change.sh
#!/bin/bash cd c=`cat 1.txt` d=`cat 2.txt` netstat -lnpt|awk '{print $4}' |awk -F: '{print $2}' |grep -v "^$">3.txt grep $d 3.txt if [ $? -ne 0 ];then sed -i "/listen/s#$c#$d#g" /usr/local/nginx/conf/nginx.conf /usr/local/nginx/sbin/nginx -s reload echo $d >1.txt /bin/sh /root/2.sh echo "现在的端口是$d" |mail -s "端口" xxxxx@qq.com xxxxx@qq.com fi
脚本思路如下:
先把nginx的端口修改成1.txt里的数字,也就是随机填入的数字,然后运行下2.sh,生成2.txt里的内容,也就是一个随机生成的数字,然后运行主脚本,这个脚本会先定义两个变量$c,$d,也就是1.txt和2.txt里数字,然后判断要修改的端口有没有跟现在打开的端口冲突,如果没有就将$d(新生成的随机数)替换掉$c(刚刚手工填的数字),然后将$d的数字重定向到1.txt里,也就是将$c的数字变成$d的数字,再运行2.sh脚本,重新生成新的$d,把这个脚本放在crontab里,一小时运行一次,下次运行的时候,又会用新生成的$d替换掉$c,这样就达到了自动随机修改nginx端口的目的
注:如果想用mail发邮件,需要先安装mailx这个软件,然后在/etc/mailx里定义下账号信息,like this:
set from=xxxxxxxxx@qq.com smtp=smtp.qq.com
set smtp-auth-user=xxxxxxx@qq.com smtp-auth-password=xxxxxxx
set smtp-auth=login
相关文章推荐
- nginx代理指定目录
- 访问Nginx发生SSL connection error的一种情况
- Nginx+Naxsi部署专业级Web应用防火墙
- CentOS 6.2实战部署Nginx+MySQL+PHP
- nginx中http核心模块的配置指令2
- nginx中http核心模块的配置指令3
- nginx中http核心模块的配置指令4
- nginx中http的fastcgi模块的配置指令1
- Nginx 学习笔记(一)
- 网站502与504错误分析
- 用zabbix监控nginx_status状态
- 艰难完成 nginx + puma 部署 rails 4的详细记录
- 把Lua编译进nginx步骤方法
- C#自定义函数NetxtString生成随机字符串
- C#对list列表进行随机排序的方法
- web 应用中常用的各种 cache详解
- C#生成不重复随机字符串类
- asp下实现记录集内随机取记录的代码
- Linux系统上配置Nginx+Ruby on Rails+MySQL超攻略