写这个脚本的原因
公司内网部署的VOIP的S口及O口设备,在公网ip地址发生变化后,无法正常注册到部署在公网上的FreePBX上,必须手动重启OpenWRT防火墙才能正常注册,通过这个脚本自动监控外网地址变化,并执行防火墙重启动作,实现VOIP系统不会因外外网地址变化导致服务中断,此脚本已测试通过,可正常使用。
实现方法
ssh登录OpenWRT,在/root下新建三个文件ip、change_log、monit_ip.sh
ip:记录当前公网ip地址,用于比较公网ip是否变化
change_log:当公网ip发生变化后,执行monit_ip.sh脚本后记录日志信息
monit_ip.sh:监控外网ip是否变化脚本,当发生变化后,写入新的外网ip到ip,重启防火墙。
操练起来
1.新建文件
touch ip
touch change_log
touch monit_ip.sh
2.赋予monit_ip.sh文件执行权限
chmod +x monit_ip.sh
3.编辑monit_ip.sh
vi monit_ip.sh
复制以下脚本,存盘退出
#!/bin/bash
new_ip=`curl ipv4.icanhazip.com`
old_ip=`cat /root/ip`
if [ ! $new_ip == $old_ip ]
then
echo $new_ip > /root/ip
echo $(date)\ "ip has changed, the new ip is $new_ip !!! " > /root/change_log
/etc/init.d/firewall restart
fi
4.配置crontab计划任务,每5分钟检查一次外网地址是否发生变化
crontab -e
加入以下信息
*/5 * * * * /root/monit_ip.sh >/dev/null 2>&1
配置完成,当外网ip发生变化时,触发重启防火墙动作。
版权属于:xinlon(除特别注明外)
本文链接:https://note.xinlon.cc/archives/75/
本站文章采用 知识共享署名4.0 国际许可协议 进行许可,请在转载时注明出处及本声明!
3 comments
看的我热血沸腾啊www.jiwenlaw.com
怎么收藏这篇文章?
叼茂SEO.bfbikes.com