由于新买了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=138****8888
#. /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脚本,以在路由器上实现更多功能。
还能发短信??你这sms服务不错,,我最近两年不用邮件了,简短内容的用微信推,比如方糖这种