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

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

admin7年前 (2017-01-03)linux6681

环境准备

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下python2.7安装pip

首先下载并安装setuptools: wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py sudo python ez_setup.py --insecure 再到python官网下载pip安装包,...

linux SSH登录时自动邮件提醒

1.安装sendmail:yum install -y sendmail 2.安装mail:yum install -y mail 3.安装mutt:yum install -y mutt 首先,确认你为OpenSSH使用了PAM,检...

结合宝塔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...

Centos7 修改SSH 端口

修改/etc/ssh/sshd_config vi /etc/ssh/sshd_config #Port 22 //这行去掉#号,防止配置不好以后不能远程登录,还得去机房修改,等修改以后的端口能使用以后在注释掉 Port 33378 //下面添加这一行 修改firewall配...

发表评论

访客

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