MENU

OpenWrt脚本判断IP变化自动发短信通知

• June 1, 2020 • Read: 42 • 折腾阅读设置

由于新买了R2S作为主路由,R7000作为AP,主路由刷了openwrt,出于对ddns的不信任,决定加一个IP变化自动短信通知的功能。
因为之前在R7000上加过,所以稍微改改思路在OpenWrt下边也做了实现。
原文:给 R7000 路由器添加短信提醒 IP 地址功能

脚本ipcheck.sh内容:

#!/bin/sh
file_name="/var/log/ipcheck.log"
iplog="/var/log/ip.log"
iptmp="/var/log/iptmp.log"
ipnull="/var/log/ipnull.log"
c=$(curl icanhazip.com)
d=`cat /var/log/ipnull.log|head -n1`
if [ "$c" = "$d" ]; then
    riqi=`date +%Y-%m-%d-%H:%M:%S`
    echo $riqi --------------------curl icanhazip.com is failed!--------------------  >> $file_name
    exit 0
else
    echo New IP: $c > $iptmp
    sleep 2
    a=`cat /var/log/iptmp.log|head -n1`
    b=`cat /var/log/ip.log|head -n1`

    if [ "$a" = "$b" ]; then
        exit 0
    else
        shijian=`date +%Y-%m-%d-%H:%M:%S`
        echo $shijian IP changes! The message has been triggered!!!!  >> $file_name
        echo $a  > $iplog
        echo $(cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("System Uptime: %dday-%dhour--%dmin---%dsecond",run_days,run_hour,run_minute,run_second)}') >> $iplog
        echo Error time : $shijian  >> $iplog
        sleep 3
                curl http://ip.fyun.org/sms.php?m=13027712715
        #. /bin/email.sh
    fi
fi

用FTP或者SCP上传到路由器bin目录,设置执行权限。
此处需要注意脚本类型,可以用:vi ipcheck.php进入编辑界面之后,使用:set ff 查看当前脚本格式,如果显示为dos格式需要改为unix格式,命令:set ff=unix

之后将改脚本加入Corntab任务执行即可。

#每隔两分钟判断一次IP有无变化
*/2 * * * * sh /bin/ipcheck.sh

到这里,系统每2分钟执行一次脚本,判断IP是否变化,变化则访问指定接口,接口处可以发送短信,发送邮件等通知。
也可以执行另外的sh脚本,以在路由器上实现更多功能。

脚本参考:wangyougx
编码问题:CSDN

Archives QR Code Tip
QR Code for this page
Tipping QR Code