CentOS通过DNSpod实现动态域名
2014-04-29 14:01
417 查看
因为家里使用ADSL动态IP上网,有时在外面需要使用家里资源,原本使用的是TP-LINK自带的花生壳解析,用过之后发现很不稳定。因为自己注册了域名也已使用了DNSPOD解析。
1.新建脚本文件
我们只需要将上面的
# 设置用户参数arMail="user@anrip.com" //DNSPOD用户名
arPass="anrip.net" //DNSPOD密码
# 检查更新域名arDdnsCheck"anrip.com" "lab" //需要更新的域名为anrip.com,主机为lab,就是lab.anrip.com
arDdnsCheck"anrip.net" "lab" //更新lab.anrip.net
修改成自己的信息即可
3.增加执行权限
4.加入任务计划(5分钟执行一次)
计划任务执行情况可以查看/var/log/cron
说明:
如果在执行后发现
本文出自 “枫林晚” 博客,请务必保留此出处http://fengwan.blog.51cto.com/508652/1404534
1.新建脚本文件
vim ddns.sh文件内容如下:
#!/bin/sh ################################################# # AnripDdns v3.08.09 # 基于DNSPod用户API实现的动态域名客户端 # 作者: 若海[mail@anrip.com] # 介绍: http://www.anrip.com/ddnspod # 时间: 2013-08-08 23:25:00 ################################################# # 全局变量表 arPass=arMail="" # 获得外网地址 arIpAdress() { local inter="http://members.3322.org/dyndns/getip" wget --quiet --no-check-certificate --output-document=- $inter } # 查询域名地址 # 参数: 待查询域名 arNslookup() { local dnsvr="114.114.114.114" nslookup ${1} $dnsvr | tr -d '\n[:blank:]' | sed 's/.\+1 \([0-9\.]\+\)/\1/' } # 读取接口数据 # 参数: 接口类型 待提交数据 arApiPost() { local agent="AnripDdns/3.08(mail@anrip.com)" local inter="https://dnsapi.cn/${1:?'Info.Version'}" local param="login_email=${arMail}&login_password=${arPass}&format=json&${2}" wget --quiet --no-check-certificate --output-document=- --user-agent=$agent --post-data $param $inter } # 更新记录信息 # 参数: 主域名 子域名 arDdnsUpdate() { local domainID recordID recordRS recordCD # 获得域名ID domainID=$(arApiPost "Domain.Info" "domain=${1}") domainID=$(echo $domainID | sed 's/.\+{"id":"\([0-9]\+\)".\+/\1/') # 获得记录ID recordID=$(arApiPost "Record.List" "domain_id=${domainID}&sub_domain=${2}") recordID=$(echo $recordID | sed 's/.\+\[{"id":"\([0-9]\+\)".\+/\1/') # 更新记录IP recordRS=$(arApiPost "Record.Ddns" "domain_id=${domainID}&record_id=${recordID}&sub_domain=${2}&record_line=默认") recordCD=$(echo $recordRS | sed 's/.\+{"code":"\([0-9]\+\)".\+/\1/') # 输出记录IP if [ "$recordCD" == "1" ]; then echo $recordRS | sed 's/.\+,"value":"\([0-9\.]\+\)".\+/\1/' return 1 fi # 输出错误信息 echo $recordRS | sed 's/.\+,"message":"\([^"]\+\)".\+/\1/' } # 动态检查更新 # 参数: 主域名 子域名 arDdnsCheck() { local postRS local hostIP=$(arIpAdress) local lastIP=$(arNslookup "${2}.${1}") echo "hostIP: ${hostIP}" echo "lastIP: ${lastIP}" if [ "$lastIP" != "$hostIP" ]; then postRS=$(arDdnsUpdate $1 $2) echo "postRS: ${postRS}" if [ $? -ne 1 ]; then return 0 fi fi return 1 } ################################################### # 设置用户参数 arMail="user@anrip.com" arPass="anrip.net" # 检查更新域名 arDdnsCheck "anrip.com" "lab" arDdnsCheck "anrip.net" "lab"ps:以上代码来自http://www.anrip.com/post/872
我们只需要将上面的
# 设置用户参数arMail="user@anrip.com" //DNSPOD用户名
arPass="anrip.net" //DNSPOD密码
# 检查更新域名arDdnsCheck"anrip.com" "lab" //需要更新的域名为anrip.com,主机为lab,就是lab.anrip.com
arDdnsCheck"anrip.net" "lab" //更新lab.anrip.net
修改成自己的信息即可
3.增加执行权限
chmod +x /root/ddns.sh
4.加入任务计划(5分钟执行一次)
echo "*/5 * * * * root /root/ddns.sh" >> /etc/crontab
计划任务执行情况可以查看/var/log/cron
说明:
如果在执行后发现
[root@localhost ~]# ./ddns.sh ./ddns.sh: line 24: nslookup: command not found hostIP: 114.234.77.222 lastIP: postRS: 114.234.77.222如果你使用的是CentOS则执行
yum -y install bind-utils或者是ubuntu的话
sudo apt-get install dnsutils
本文出自 “枫林晚” 博客,请务必保留此出处http://fengwan.blog.51cto.com/508652/1404534
相关文章推荐
- python使用TCP实现文件传输(CentOS6.4,python2.6测试通过)
- CentOS 6.x 通过bonding技术实现网络负载均衡及冗余
- Centos上通过shell脚本实现数据库备份和还原
- 通过SSH证书实现Putty免密码登录CentOS
- centos7 通过kvm+vnc 实现远程桌面虚拟化和创建windows、Linux虚拟机
- CentOS 7通过Nginx实现Tomcat动静分离
- Centos7.0下通过Corosync+pacemaker+pcs+drbd实现mariadb的高可用
- Centos7 通过nmcli team实现网卡绑定
- 通过Unison实现CentOS 5.5下文件的双向同步
- 基于CentOS 7系统的两部LAMP服务器,通过NFS共享同一个php网页的实现
- Linux CentOS 7 下通过Memcached实现Session共享
- Centos-SSH多个服务器通过互信实现彼此之间免密登录
- VirtualBox中CentOS通过Host-Only方式实现虚拟机主机互相访问、共享上网
- 在Centos5.9下通过rsync+inotify实现数据的实时备份
- centos6.5下vsftpd服务的安装及配置并通过pam认证实现虚拟用户文件共享
- Centos6.5通过创建局域网http实现yum源的更新
- centos6.5下vsftpd服务的安装及配置并通过pam认证实现虚拟用户文件共享
- CentOS6.3下vsftpd通过pam认证实现虚拟用户文件共享 推荐
- CentOS 6.9下iptables通过raw表实现日志输出和调试