用上网本建了个Linux服务器,由于IP是动态分配的,且经常会变化,导致外网经常连接不上服务器,想着能够在IP变化时发送邮件到指定的邮箱,这样就不怕了……
申请mailgun邮件服务
mainpage: http://www.mailgun.com/
申请mailgun的邮件发送服务, 获取 user_key
获取公网IP脚本
vim /home/user/bin/get_public_ip.sh
查询IP是否变化,如变化,发送邮件到指定地址(根据实际情况修改下面脚本中的中文部分)
#!/bin/bash
if [ -f .getip ]
then
rm -fr .oldip
mv .getip .oldip
fi
touch .oldip
wget http://members.3322.org/dyndns/getip
mv getip .getip
RESULT=`diff .oldip .getip`
if [ "$RESULT" != "" ]
then
curl -s --user 'mailgun的user_key内容' \
https://api.mailgun.net/v2/sandboxed7e005db69346568602b4ee9e3a42ef.mailgun.org/messages \
-F from='Mailgun Sandbox <postmaster@sandboxed7e005db69346568602b4ee9e3a42ef.mailgun.org>' \
-F to='收件人名称 <收件人邮件地址>'\
-F subject='Server IP changed!' \
-F text=`cat .getip`
fi
配置cron
每5分钟查询IP是否变化,如变化,发送邮件到指定地址
输出命令 crontab -e , 新增内容
*/5 * * * * /bin/sh /home/user/bin/get_public_ip.sh
重启cron
sudo service cron restart