Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
- 十月流星
- 帖子: 19
- 注册时间: 2010-02-02 11:01
Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
当前的Ubuntu服务器所在的网络环境是ADSL拨号,并用路由器把改服务器映射到外网了,每次必需要人帮忙查询到当前服务器的外网的IP地址告诉我后,我才可以进入到我的服务器管理,所以我想Ubuntu服务器实现让服务器自己获取当前外网的IP地址,并把它获取的外网的IP地址每天定时的发送到我的邮箱里~请各位帮帮忙~帮我解决下,谢谢~或者给我提供解决的意见办法,本人不胜感谢~
- boboj
- 帖子: 6
- 注册时间: 2010-06-09 12:58
- 联系:
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
代码: 全选
1 #!/bin/sh
2
3
4 ip=`curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0- 9\.]*\).*/\1/g'`
5 echo "Sending ip $ip..."
6
7 to="[email protected]"
8 subject="IP"
9 message="IP is $ip"
10 headers="From:[email protected]"
11 echo $message | mail -s $subject $to -- -f $headers
12 echo "Send OK!"
首先需要安装curl:
代码: 全选
sudo apt-get install curl
代码: 全选
sudo apt-get install sendmail
至于如何定时发送,cron可以吧?
- 十月流星
- 帖子: 19
- 注册时间: 2010-02-02 11:01
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
谢谢你,你可以给我个详细的配置步骤吗?
- 十月流星
- 帖子: 19
- 注册时间: 2010-02-02 11:01
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
您好,再次感谢你的帮助和回复,上面的那么配置文件我不是很明白,你要是有时间的话,给写个配置的步骤可以吗?我测试下~谢谢了,我的邮箱[email protected]
- boboj
- 帖子: 6
- 注册时间: 2010-06-09 12:58
- 联系:
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
先安装sendmail,
什么都不用配,直接默认就可以
然后安装curl
然后编写下面的脚本checkIP.sh
把[email protected]换成你要接受邮件的邮箱,[email protected]是你sendmail服务器的名字。
这个脚本先从http://checkip.dyndns.org查询到外网IP,然后通过sendmail发送邮件。
最后配置每日定时执行者个脚本:
编辑/etc/crontab
添加如下
这个配置的意思是每天6点执行查询IP脚本
最后重启cron
这样就可以了。(cron不懂得话,自己google吧)
代码: 全选
sudo apt-get install sendmail
然后安装curl
代码: 全选
sudo apt-get install curl
代码: 全选
1 #!/bin/sh
2
3 #获取IP
4 ip=`curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0- 9\.]*\).*/\1/g'`
5 echo "Sending ip $ip..."
6 #发送邮件
7 to="[email protected]"
8 subject="IP"
9 message="IP is $ip"
10 headers="[email protected]"
11 echo $message | mail -s $subject $to -- -f $headers
12 echo "Send OK!"
这个脚本先从http://checkip.dyndns.org查询到外网IP,然后通过sendmail发送邮件。
最后配置每日定时执行者个脚本:
编辑/etc/crontab
代码: 全选
sudo vim /etc/crontab
代码: 全选
0 6 * * * root /path/to/checkIP.sh(脚本文件路径)
最后重启cron
代码: 全选
sudo service cron restart
- 十月流星
- 帖子: 19
- 注册时间: 2010-02-02 11:01
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
你好,谢谢你的回复,今天晚上的时候我实验了下,环境是VMware7.1+Ubuntu Server 10.04(32位),
第一步:sudo apt-get install sendmail
第二步:sudo apt-get install curl
第三步:在vim /etc/checkIP.sh内容如下:
#!/bin/sh
#获取IP
ip=`curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0- 9\.]*\).*/\1/g'`
echo "Sending ip $ip..."
#发送邮件
to="[email protected]"
subject="IP"
message="IP is $ip"
headers="[email protected]"
echo $message | mail -s $subject $to -- -f $headers
echo "Send OK!"
第四步:编辑sudo vim /etc/crontab在最后一行添加如下内容:
00 20 * * * root /etc/checkIP.sh
第五步:重启cron
sudo service cron restart
第六步:我设置了我的Ubuntu系统时间,使用date查看跟我主机时间相对应;
第七步:我检查了我的收件箱,发现没有邮件,我检查了checkIP.sh文件的权限,发现没有执行权限,所以:
chmod 755 /etc/checkIP.sh
此时我又重新设定时间,并重启cron,但是还没有收到邮件,我不知道是怎么回事,请你指点!谢谢~
第一步:sudo apt-get install sendmail
第二步:sudo apt-get install curl
第三步:在vim /etc/checkIP.sh内容如下:
#!/bin/sh
#获取IP
ip=`curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0- 9\.]*\).*/\1/g'`
echo "Sending ip $ip..."
#发送邮件
to="[email protected]"
subject="IP"
message="IP is $ip"
headers="[email protected]"
echo $message | mail -s $subject $to -- -f $headers
echo "Send OK!"
第四步:编辑sudo vim /etc/crontab在最后一行添加如下内容:
00 20 * * * root /etc/checkIP.sh
第五步:重启cron
sudo service cron restart
第六步:我设置了我的Ubuntu系统时间,使用date查看跟我主机时间相对应;
第七步:我检查了我的收件箱,发现没有邮件,我检查了checkIP.sh文件的权限,发现没有执行权限,所以:
chmod 755 /etc/checkIP.sh
此时我又重新设定时间,并重启cron,但是还没有收到邮件,我不知道是怎么回事,请你指点!谢谢~
-
- 帖子: 7
- 注册时间: 2010-06-06 13:29
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
用wget +3322.org来做,不用收邮件直接一个域名搞定。
- boboj
- 帖子: 6
- 注册时间: 2010-06-09 12:58
- 联系:
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
先试试直接手动执行那个脚本,看看能不能发吧,能的话,就是cron配错了,有可能是你设的时间已经过了,没有执行,不能的话,看看能不能直接查到IP,能的话就是sendmail有问题,再排查下吧。另外,[email protected]要换为你的机器名,不过貌似不换也无所谓。十月流星 写了:你好,谢谢你的回复,今天晚上的时候我实验了下,环境是VMware7.1+Ubuntu Server 10.04(32位),
第一步:sudo apt-get install sendmail
第二步:sudo apt-get install curl
第三步:在vim /etc/checkIP.sh内容如下:
#!/bin/sh
#获取IP
ip=`curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0- 9\.]*\).*/\1/g'`
echo "Sending ip $ip..."
#发送邮件
to="[email protected]"
subject="IP"
message="IP is $ip"
headers="[email protected]"
echo $message | mail -s $subject $to -- -f $headers
echo "Send OK!"
第四步:编辑sudo vim /etc/crontab在最后一行添加如下内容:
00 20 * * * root /etc/checkIP.sh
第五步:重启cron
sudo service cron restart
第六步:我设置了我的Ubuntu系统时间,使用date查看跟我主机时间相对应;
第七步:我检查了我的收件箱,发现没有邮件,我检查了checkIP.sh文件的权限,发现没有执行权限,所以:
chmod 755 /etc/checkIP.sh
此时我又重新设定时间,并重启cron,但是还没有收到邮件,我不知道是怎么回事,请你指点!谢谢~
-
- 帖子: 321
- 注册时间: 2009-11-19 10:40
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
嗯,用动态域名解决最好!qu_son 写了:用wget +3322.org来做,不用收邮件直接一个域名搞定。
echo $message | mail -s $subject $to -- -f $header
这行报错,./sendmail.sh: line 10: mail: command not found
这个mail程序要install什么?
- 十月流星
- 帖子: 19
- 注册时间: 2010-02-02 11:01
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
boboj 写了:先试试直接手动执行那个脚本,看看能不能发吧,能的话,就是cron配错了,有可能是你设的时间已经过了,没有执行,不能的话,看看能不能直接查到IP,能的话就是sendmail有问题,再排查下吧。另外,[email protected]要换为你的机器名,不过貌似不换也无所谓。十月流星 写了:你好,谢谢你的回复,今天晚上的时候我实验了下,环境是VMware7.1+Ubuntu Server 10.04(32位),
第一步:sudo apt-get install sendmail
第二步:sudo apt-get install curl
第三步:在vim /etc/checkIP.sh内容如下:
#!/bin/sh
#获取IP
ip=`curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0- 9\.]*\).*/\1/g'`
echo "Sending ip $ip..."
#发送邮件
to="[email protected]"
subject="IP"
message="IP is $ip"
headers="[email protected]"
echo $message | mail -s $subject $to -- -f $headers
echo "Send OK!"
第四步:编辑sudo vim /etc/crontab在最后一行添加如下内容:
00 20 * * * root /etc/checkIP.sh
第五步:重启cron
sudo service cron restart
第六步:我设置了我的Ubuntu系统时间,使用date查看跟我主机时间相对应;
第七步:我检查了我的收件箱,发现没有邮件,我检查了checkIP.sh文件的权限,发现没有执行权限,所以:
chmod 755 /etc/checkIP.sh
此时我又重新设定时间,并重启cron,但是还没有收到邮件,我不知道是怎么回事,请你指点!谢谢~
我手动执行过脚本了,谢谢你!貌似好像还是不行,我再检查下~你有时间的话,帮忙也测试下吧,说不定,你的代码都对,是我那里做错了,谢谢你哈~
- 十月流星
- 帖子: 19
- 注册时间: 2010-02-02 11:01
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
basncy 写了:嗯,用动态域名解决最好!qu_son 写了:用wget +3322.org来做,不用收邮件直接一个域名搞定。
echo $message | mail -s $subject $to -- -f $header
这行报错,./sendmail.sh: line 10: mail: command not found
这个mail程序要install什么?
多学一种解决的办法,更好,老兄,你要不也把你的解决方案,做个步骤发上来吧!谢谢了~
- xyf
- 帖子: 2032
- 注册时间: 2007-05-05 23:59
- 来自: 嘉兴
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
用动态域名的话,直接ping就行了。
ufraw中文(raw图像处理) http://sites.google.com/site/ufrawzh/
Gimp影像处理 http://sites.google.com/site/gimpcn/
Gimp影像处理 http://sites.google.com/site/gimpcn/
-
- 帖子: 321
- 注册时间: 2009-11-19 10:40
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
到http://www.3322.org/注册一个动态域名(免费)十月流星 写了:basncy 写了:嗯,用动态域名解决最好!qu_son 写了:用wget +3322.org来做,不用收邮件直接一个域名搞定。
echo $message | mail -s $subject $to -- -f $header
这行报错,./sendmail.sh: line 10: mail: command not found
这个mail程序要install什么?
多学一种解决的办法,更好,老兄,你要不也把你的解决方案,做个步骤发上来吧!谢谢了~
然后终端运行:
lynx -mime_header -auth=user : pass "http://www.3322.org/dyndns/update?syste ... t.3322.org"
参见:http://www.3322.org/static/client.html
-
- 帖子: 23
- 注册时间: 2005-06-21 12:34
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
maybe .. chmod u+x name.sh
-
- 帖子: 23
- 注册时间: 2005-06-21 12:34
Re: Ubuntu下如何实现获取当前服务器的外网IP地址并把该地址发送到我的邮箱里!!!
apt-get install mailutilsbasncy 写了:嗯,用动态域名解决最好!qu_son 写了:用wget +3322.org来做,不用收邮件直接一个域名搞定。
echo $message | mail -s $subject $to -- -f $header
这行报错,./sendmail.sh: line 10: mail: command not found
这个mail程序要install什么?