需求:如果使用一台动态ip的服务器可能需要设置ddns(设置方法),但是ddns设置了自己没有办法主动知道服务器的ip是否变动了。所以想做一个变动ip的同时发送一份邮件通知自己!!!JUST DO IT!!!!
需要内容:一个邮件发送的接口(后期可能考虑开放自己的接口)
脚本下载:checkIP
直接上关键代码吧,也不多说什么!!
#!/bin/bash
# MAYBE CHANGE THESE
ip=$(curl -s http://ipv4.icanhazip.com)
ip_file="/usr/local/bin/check_ip.txt"
# LOGGER
log() {
if [ "$1" ]; then
echo -e "[$(date)] - $1" >> $log_file
fi
}
if [[ $update == *"\"success\":false"* ]]; then
else
message="IP changed to: $ip"
if [ "$ip" = "" ]
then
echo "ip is not set"
else
echo "ip is set!"
echo "$ip" > $ip_file
echo "$message"
curl -v "调用发送短信的接口API"
fi
log "$message"
fi
这里只需要在调用发送短信的接口API换成一个请求接口地址就好了。
比如:http://xxx.com/sendmail.php?toemail=xxxxxx@qq.com&title=IPChanged&content=IP Changed to $ip
参数说明:
toemail:发送到哪个邮箱
title:邮件显示标题
$ip:保持不变,这个是更换后的ip
1、下载/添加文件到/usr/local/bin的目录下
2、赋予执行权限 chmod +x *.sh
3、添加到定时任务!!!重中之重
crontab -e
*/2 * * * * /usr/local/bin/checkIP.sh >/dev/null 2>&1
这里每两分钟检测一次!!
至此,就完成了。
本文地址:实时监测ip是否变动