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

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

admin8年前 (2017-01-03)linux7655

环境准备

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 SSH登录时自动邮件提醒

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

centos 7 更改网络设置

centos 7 更改网络设置

使用交互式界面来配置网络。在终端中使用命令: $nmtui...

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

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

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

linux格式化挂载硬盘

linux格式化挂载硬盘

挂载硬盘: 提醒:挂载操作会清空数据,请确认挂载盘无数据或者未使用 第一步:列出所有磁盘 命令:ll /dev/disk/by-path 提示:如果无法确认数据盘设备名称,请使用df命令来确认系统盘的名称,从而排除挂错盘的情况...

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...

发表评论

访客

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