出于节约成本费用考虑,平时家用和小型商用的宽带都是ADSL虚拟拔号的。ADSL宽带的下载速度在4M左右时与光纤的差别不是很大,但唯一的问题就是没有固定IP,每次重新拔号都会重新获得动态的IP。这种情况下想进行远程维护服务器和网络就变得十分困难。在局域网内有Linux主机的情况下,我们可以考虑用如下的方法。
Table of Contents
一、获得当前路由器的外网IP
curl ifconfig.me
就会获得一个路由器的IP地址。接下来,将这个IP地址通过Email发到指定的邮箱就。用 vim GetIP.sh 写一个角本,执行后,就会将外网IP发送到指定的电子邮箱中,脚本如下
#!/bin/bash # Program: # Send Router IP of Internet to certain email# History: # 2014-03-08 cmzsteven First releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin/:~/binexport PATHcurl ifconfig.me | mail -s "Router IP of Internet" changmingzhi@163.com
用命令 :wq 保存
二、定时执行
把这个脚本加到计划任务crontab中。如果你是管理员可以用
vim /etc/crontab
加到系统的计划任务里也可以用 crontab -e 加入到用户的计划任务里。不管是加到哪里面,格式是一样的:
1 */1 * * * root /root/GetIP.sh
上面是每小时的第一分钟执行一次,如果是每天1:01执行一次,格式为:
1 1 */1 * * root /root/GetIP.sh
在作用“/n”的时候,如果前面还有“*”就要指定数值了,要不就是每一分钟发一次了。我之前设置为
* */2 * * * root /root/GetIP.sh
结果就是每隔一分钟,就会收到一封邮件。3.剩下的工作就是在路由器里设置虚拟服务或者NAT转换了,这里就不过多的加以介绍了。
三、时程表的格式
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推
原文地址:http://changmingzhi.blog.163.com/blog/static/29678048201428114710683/