当前位置:首页 > linux > 正文内容

在树莓派/linux上使用阿里云DNS解析作为DDNS使用

admin8年前 (2017-01-03)linux7111

环境准备

Python的2.7+


SDK安装

使用PIP进行安装

使用如下命令来安装SDK:

sudo pip install aliyun-python-sdk-alidns


通过install完成升级

sudo pip install aliyun-python-sdk-alidns  --upgrade


将下面的代码复制下来并修改脚本中的***“ID”*** ***与“Secret”***


#coding:utf-8
#Auther:视觉℡
#Email:admin@cqroom.cn
#转载请保留出处


from aliyunsdkcore import client
from aliyunsdkalidns.request.v20150109 import DescribeDomainsRequest,DescribeDomainRecordsRequest,UpdateDomainRecordRequest
import json,urllib,re


#替换以下参数
ID="替换我"    
Secret="替换我"
RegionId="cn-hangzhou"  
DomainName="cqroom.cn"
#想要自动修改的主机名和域名类型
HostNameList = ['a']
Types = "A"

clt = client.AcsClient(ID,Secret,RegionId)

#获取公网ip
def GetLocalIP():
    IPInfo = urllib.urlopen("http://ip.chinaz.com/getip.aspx").read()
    IP = re.findall(r"ip:'(.*?)',", IPInfo)[0]
    return IP

#获取域名列表(暂时无用)
def GetDomainList():
    DomainList = DescribeDomainsRequest.DescribeDomainsRequest()
    DomainList.set_accept_format('json')
    DNSListJson = json.loads(clt.do_action(DomainList))
    print DNSListJson

#更新域名ip
def EditDomainRecord(HostName, RecordId, Types, IP):
    UpdateDomainRecord = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    UpdateDomainRecord.set_accept_format('json')
    UpdateDomainRecord.set_RecordId(RecordId)
    UpdateDomainRecord.set_RR(HostName)
    UpdateDomainRecord.set_Type(Types)
    UpdateDomainRecord.set_TTL('600')
    UpdateDomainRecord.set_Value(IP)
    UpdateDomainRecordJson = json.loads(clt.do_action(UpdateDomainRecord))
    print UpdateDomainRecordJson

#获取域名信息
def GetAllDomainRecords(DomainName, Types, IP):
    DomainRecords = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest()
    DomainRecords.set_accept_format('json')
    DomainRecords.set_DomainName(DomainName)
    DomainRecordsJson = json.loads(clt.do_action(DomainRecords))
    for HostName in HostNameList:
        for x in DomainRecordsJson['DomainRecords']['Record']:
            RR = x['RR']
            Type = x['Type']
            if RR == HostName and Type == Types:
                RecordId = x['RecordId']
                print RecordId
                EditDomainRecord(HostName, RecordId, Types, IP)

IP = GetLocalIP()
GetDomainList()
GetAllDomainRecords(DomainName, Types, IP)




建立定时任务:


crontab -e
在打开的文件最后一行添加



*/10 * * * * /usr/bin/python2 /home/py.py
注意: 10为10分钟自动运行



/usr/bin/python2  不要动
 
/home/py.py 你自己的PY脚本路径



扫描二维码推送至手机访问。

版权声明:本文由视觉博客发布,如需转载请注明出处。

本文链接:https://feelsight.cn/post/29.html

“在树莓派/linux上使用阿里云DNS解析作为DDNS使用” 的相关文章

结合宝塔linux面板 centos6 7一键zabbix安装脚本!

结合宝塔linux面板 centos6 7一键zabbix安装脚本!

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。铁网维就不做过多的介绍,详情可以百度了解! 本次铁网维结合宝塔linux面板的环境来安装zabbix3.0.1 由于安装步骤比较多我已经写成脚本省去90%的配置...

centos7 安装zabbix客户端并监控

centos7 安装zabbix客户端并监控

 在上面博客中我们已经安装了zabbix的server端,如果我们需要对某台机器进行监控,还需要在被监控的机器上面安装客户端,这样才能进行监控,下面就给大家介绍一下agent端的安装教程   第一、导入源   sudo rpm -ivh http://rep...

树莓派raspbian系统更换国内源

树莓派新版系统更换了专门优化过的桌面环境PIXEL,正好手头有个闲置的TF卡决定刷上新版系统玩玩。下载刷系统过程很多教程页很简单。插卡,上电开机,释放卡上的剩余空间都很正常,因为树莓派官方源访问很慢下一步就是换成国内源,以前一直在用中科大的源,于是开始按照以前的方法修改/etc/apt/sou...

shell ping监控服务器是否死机/方糖通知

有时候服务器经常死机,但是死机我们又没办法知道,这时候需要一个自动脚本来帮助我们监控服务器是否运行 在linux 下 vim ./ip.sh 添加下面的代码并保存退出,设置文件权限 chmod 777 ip.sh #!/bin/bash SCKEY="SCU4316************...

玩客云刷ambian并写入内置存储

玩客云刷ambian并写入内置存储

此教程适用于玩客云全部版本,无视官方限制,直接强刷 --------------准备工作--------------- 1.晶晨s805通刷工具Amlogic USB Burning Tool 2.s805通刷固件 3.putty...

使用Docker制作一个CentOS7容器并安装python3

使用Docker制作一个CentOS7容器并安装python3

1.下载centos镜像 docker pull centos:7 2.创建并启动容器 docker run -d --name centos7 --privileged=true -p 10022:22 -p 10080:80 -h testh...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。