随机修改nginx端口脚本及思路

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机修改nginx端口脚本及思路相关的知识,希望对你有一定的参考价值。

需求:随机修改nginx端口,一小时一次,然后发邮件通知


脚本思路,先在/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 "端口" [email protected] [email protected]
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 [email protected] smtp=smtp.qq.com 

set [email protected] smtp-auth-password=xxxxxxx

set smtp-auth=login


本文出自 “pc的个人博客” 博客,请务必保留此出处http://pc1990.blog.51cto.com/10541224/1758930

以上是关于随机修改nginx端口脚本及思路的主要内容,如果未能解决你的问题,请参考以下文章

Nginx的配置

如何修改LNMP的web访问端口

WINDOWS程序监控及故障自动重启思路及bat脚本实现

nginx--基于crond定时服务+shell脚本实现nginx日志自动清理及备份

jmeter中脚本数据分离并生成报告

nginx端口重定向及反向代理