获取动态分配的公网IP,并发送到指定邮箱

    用上网本建了个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 <[email protected]>' \
        -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


你可能感兴趣的:(获取动态分配的公网IP,并发送到指定邮箱)