您的位置:首页 > 运维架构 > Linux

Linux下判断公网IP是否改变,并发送邮件通知

2012-10-27 12:40 1841 查看
考虑到大家都是在自己家里架设服务器,IP是动态的,随时可能改变。为保证IP改变的时候能及时更新域名指向地址,在服务器上挂一个脚本判断IP是否已经改变,并主动发送邮件通知——这显得非常重要。

实现方法有两种:Linux和Windows,我闲到蛋疼,两个脚本都写好了,放上来跟大家分享一下。

Linux下实现的方法很简单,就是写一个bash脚本,并设置定时运行。需要用到的几个工具是:

1. 安装Lynx浏览器: sudo apt-get install lynx

2. 安装sSMTP邮件服务器(如果已经安装好别的邮件服务器,一样可行,记得修改我的发送邮件部分的代码就可以了)

3. 使用crontab实现“计划任务”

具体操作:

1. 先创建一个名为“myIP”的空白文件,或者随便写点什么

2. 创建bash脚本,代码如下:(更新提示:以下代码运行正常,但在配合crontab使用时,建议把各个文件的完整路径写上,如\home\user\myIP等等)

#!/bin/bash

export LastIP=`cat myIP`

export WanIP=`echo "$(lynx -dump checkip.dyndns.org)" | awk '{ print $4 }'`

if [ $LastIP != $WanIP ]

then

echo $WanIP > myIP

echo "WAN IP changed, send out alerts..."

下面一行代码是发送邮件给我自己,请根据自己情况修改

/usr/sbin/ssmtp abc123@gmail.com < myIP

else

echo "You're good."

fi

保存后记得修改文件属性,确保为“可执行”

以上代码测试可行,我使用Gmail收发邮件都很正常。

有关sSMTP的安装和配置,请参见(很容易的):http://www.havetheknowhow.com/Configure-the-server/Install-ssmtp.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息