自己申请了独立的公网IP,但是由于是家用IP经常会变,于是就有了想写一个脚本,每天定时去get下IP是否有变化,有差异则给自己的邮箱发封邮件,这样完全不用担心想突然登录服务器查资料却不知道IP地址的尴尬。
获取IP
使用curl去访问一个查询本地IP的就可以了
ifconfig.me
http://members.3322.org/dyndns/getip
这2个都可以,但第一个访问多了会被屏蔽。。。
发送邮件
在/etc/mail.rc文件中添加下面几项就OK(我用的163发送,qq接收):
set from=xxx@163.com (你的163邮箱)
set smtp=smtp.163.com (163邮箱默认就用这个)
set smtp-auth-user=xxx@163.com (第一行)
set smtp-auth-password=xxxxxxxx (进163邮箱自己设置的,位置在下图所示)
定时器里面设置定时任务
编辑 /etc/crontab,下图所示,我定在每天9点半,下午2点半执行一次脚本
最后附上脚本
#!/bin/sh
filename="/work/check_ip/ip"
function getIP
{
#curl ifconfig.me>>ip
curl http://members.3322.org/dyndns/getip>>$filename
}
function sendMail
{
echo "send conent: $1"
echo "$1" | mail -s "changed!" xxxxxxx@qq.com
}
function check
{
count=`awk 'END {print NR}' $filename`
if [ $count -ge 2 ]
then
line1=`tail -n 2 $filename|awk 'NR==1 {print}'`
line2=`tail -n 2 $filename|awk 'NR==2 {print}'`
if [ "$line1" != "$line2" ]
then
sendMail "$line2"
fi
fi
}
getIP
check