dnspod单个修改与批理修改脚本



 1 [[email protected] dnspod]# cat dnspod.sh
 2 #!/bin/bash
 3 function menu() {
 4 clear
 5 echo "*********************Dnspod************************"
 6 echo "*       1,将加速乐cname批量修改到dnspod          *"
 7 echo "*       2, 将ip批量修改到dnspod            *"
 8 echo "*       3, 单个域名修改                     *"
 9 echo "*       4, 退出                         *"
10 echo "***************************************************"
11 read -p "请输入编号: " number
12 read -p "请输入D令牌: " number2
13 }
14 while true
15 do
16     menu
17     case $number in
18     1)
19     python /python/saltnew/dnspod/dnspod.py batch_jiasule $number2
20     read -p "回车继续: ";;
21     2)
22     python /python/saltnew/dnspod/dnspod.py batch_dnspod $number2
23     read -p "回车继续: ";;
24     3)
25     python /python/saltnew/dnspod/dnspod.py none $number2
26     read -p "回车继续: ";;
27     *)
28     exit;;
29     esac
30 done

 [[email protected] dnspod]# cat dnspod.py 1 #!/bin/python
 2 #-*- coding: utf-8 -*-
 3 import urllib
 4 import urllib2
 5 import os,sys,json,demjson,fileinput
 6
 7 #处理post请求
 8 def post(url,data):
 9     req = urllib2.Request(url)
10     headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/json", "User-Agent": "dnspod-python/0.01 ([email protected]; DNSPod.CN API v2.8)"}
11     data = urllib.urlencode(data,headers)
12     opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
13     response = opener.open(req, data)
14     return response.read()
15
16 #主函数
17 def main(batch,login_code):
18
19     #获取域名列表
20     posturlDomain=‘https://dnsapi.cn/Domain.List‘
21     dataDomain={‘login_email‘:‘[email protected]‘,‘login_password‘:‘xxx‘,‘format‘:‘json‘,‘login_code‘:login_code}
22     Domain={}
23     records={}
24     number=0
25     numbertwo=0
26     batchlist={}
27     jiasulelist={}
28     dnspodlist={}
29     for i in demjson.decode(str(post(posturlDomain,dataDomain)))[u‘domains‘][:]:
30     number+=1
31     Domain[number]={str(i[u‘name‘]):str(i[u‘id‘])}
32     for key,value in Domain.items():
33         print key,value
34     numb=input("please input number: ")
35     domain_number=Domain[numb].values()[0]
36
37     #获取二级域名列表
38     posturlrecordlist=‘https://dnsapi.cn/Record.List‘
39     datarecordlist={‘login_email‘:‘[email protected]‘,‘login_password‘:‘xxx‘,‘format‘:‘json‘,‘domain_id‘:domain_number,‘login_code‘:login_code}
40     for i in  demjson.decode(str(post(posturlrecordlist,datarecordlist)))[u‘records‘][:]:
41     numbertwo+=1
42     batchlist[i[u‘name‘]]=str(i[u‘id‘])
43     records[numbertwo]={str(i[u‘name‘]):str(i[u‘id‘])}
44
45     #批量恢复
46     if batch == "batch_jiasule":
47     for line in fileinput.input("/python/saltnew/dnspod/jiasule.txt"):
48         name=line.strip(‘\n‘).split(‘ ‘)[0]
49         cname=line.strip(‘\n‘).split(‘ ‘)[1]
50         records_id=batchlist[name]
51         jiasulelist[name]={cname:records_id}
52         posturlmodify_batch=‘https://dnsapi.cn/Record.Modify‘
53         datamodify_batch={‘login_email‘:‘[email protected]‘,‘login_password‘:‘xxx‘,‘format‘:‘json‘,‘domain_id‘:domain_number,‘sub_domain‘:name,‘record_type‘:‘CNAME‘,‘record_line‘:u‘默认‘.encode("utf8"),‘value‘:cname,‘record_id‘:records_id,‘login_code‘:login_code}
54         print post(posturlmodify_batch,datamodify_batch)
55     sys.exit(1)
56     if batch == "batch_dnspod":
57         for line in fileinput.input("/python/saltnew/dnspod/dnspod.txt"):
58             name=line.strip(‘\n‘).split(‘ ‘)[0]
59             ip=line.strip(‘\n‘).split(‘ ‘)[1]
60             records_id=batchlist[name]
61             dnspodlist[name]={ip:records_id}
62             posturlmodify_dns=‘https://dnsapi.cn/Record.Modify‘
63             datamodify_dns={‘login_email‘:‘[email protected]‘,‘login_password‘:‘xxx‘,‘format‘:‘json‘,‘domain_id‘:domain_number,‘sub_domain‘:name,‘record_type‘:‘A‘,‘record_line‘:u‘默认‘.encode("utf8"),‘value‘:ip,‘record_id‘:records_id,‘login_code‘:login_code}
64             print post(posturlmodify_dns,datamodify_dns)
65         sys.exit(1)
66
67     #单个修改
68     for key,value in records.items():
69     print key,value
70     numb2=input("please input number: ")
71     records_number=records[numb2].values()[0]
72     records_name=records[numb2].keys()[0]
73     record_type=raw_input("请输入记录类型: ")
74     record_ip=raw_input("请输入记录值: ")
75
76     #修改某个二级域名的记录类型与记录值
77     posturlmodify=‘https://dnsapi.cn/Record.Modify‘
78     datamodify={‘login_email‘:‘[email protected]‘,‘login_password‘:‘xxx‘,‘format‘:‘json‘,‘domain_id‘:domain_number,‘sub_domain‘:records_name,‘record_type‘:record_type,‘record_line‘:u‘默认‘.encode("utf8"),‘value‘:record_ip,‘record_id‘:records_number,‘login_code‘:login_code}
79     print post(posturlmodify,datamodify)
80
81 if __name__ == ‘__main__‘:
82     main(sys.argv[1],sys.argv[2])
1 [[email protected] dnspod]# cat dnspod.txt
2 www 1.1.1.1
3
4 [[email protected] dnspod]# cat jiasule.txt
5 www 5644545644665.cdn.jiashule.com.
时间: 2024-08-23 15:38:43

dnspod单个修改与批理修改脚本的相关文章

EF里单个实体的增查改删以及主从表关联数据的各种增删 改查

本文目录 EF对单个实体的增查改删 增加单个实体 查询单个实体 修改单个实体 删除单个实体 EF里主从表关联数据的各种增删改查 增加(增加从表数据.增加主从表数据) 查询(根据主表找从表数据.根据从表找主表数据) 修改(修改从表的外键) 删除(删除主从表关系.删除主表数据.删除主从表数据.修改从表数据外键) 补充内容 SaveChanges方法提交多次操作 DbSet.Add方法返回当前实体 源码和系列文章导航 注:本章节多次演示了各种删除,要重复查看效果,需要解开注释初始化数据方法. 一.EF

一个批量修改AD信息的小脚本

今天接到一个任务,一个子公司100来个USER的账号,更换了新的电话号码,另顺便需要在AD里面体现出 各USER的职位. 好吧,100多个人,如果手动来改,量也很大,首先想到的是用脚本来修改,刚好想到了powershell. 首先,准备一个CSV文件,把USER按如下格式排练好,各值之间用逗号隔开,之后命名test.csv文件 samaccountname,telephonenumber,title user1,1234567,engineer user2,2345678,sales ...,.

dedecms5.7二级域名文章图片不显示修改方法.相对路径改为绝对路径的方法

dedecms5.7(织梦CMS5.7)二级域名文章图片不显示修改方法.相对路径改为绝对路径的方法 dedecms升级到5.7SP1后,开启二级域名,你会发现,在二级域名下的文章,上传的图片地址都是:二级域名+图片地址,这是相对路径.但是你的图片是默认上传在uploads里面的.应该使用绝对路径.这就出现图片路径错误,导致图片不显示.那怎么修改这种情况呢?我在网上看了好多方法,但是大部分最终是不可用的.在这里,将两种有效的方法分享给大家.这两种方法都是在你开启“多站点支持”.“绑定完二级域名”的

批量热备脚本

批量热备脚本: select 'alter tablespace '||tablespace_name||' begin backup;'||chr(10)|| 'host cp'||file_name||'/backup'||chr(10)||'alter tablespace'||' ' || tablespace_name||' ' ||'end backup;' from dba_data_files order by tablespace_name;

python ssh 连接远程服务器,修改文本内容,调用脚本

今天小编get到一个用python的paramiko库创建ssh对象,连接到远程服务器,并且修改文件内容,调用脚本的好方法!! 主角当然是paramiko库啦,利用paramiko创建一个ssh对象,用于连接远程服务器 import paramiko ssh = paramiko.SSHClient()#创建SSH对象 设置允许连接不在know_hosts的主机,ssh会将 访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts,当下次访问相同计算机时,OpenS

mysql 修改data目录后 无法使用脚本启动

一.公司Mysql环境 #1. 目前公司Mysql只做了主从 #2. Mysql数据库版本:Percona-Server-server-56-5.6.20-rel68.0.el6.x86_64.rpm 二.Mysql从库的问题 Mysql从库一直都用命令启动:mysqld_safe --defaults-file=/etc/my.cnf & .用/etc/init.d/mysql启动脚本一直报错.最郁闷的是在错误日志里没有记录启动错误信息. 我忍受了大半年的命令启动,终于不想再忍下去了. 之前一

matchmove流程中修改Maya相机数据的脚本

matchmove组的流程涉及到syntheyes与maya,nuke交接的问题.syntheyes会生成包含去畸变节点的nuke工程 和带跟踪信息的maya工程.在nuke工程上渲染得到去畸变的序列,这是第一步.第二步就是进入maya工程替换去畸变的序列,并修改相应相机参数. 在以往流程中,第二步需要人工完成,涉及到的参数也不少,不熟悉流程的员工时常犯错,是一个流程隐患. 要解决这个问题就需要一个脚本自动完成第二步骤,相机之前的数据可以直接获取,之后的数据可以根据去畸变序列的属性进行换算,于是

批量修改AD用户属性python脚本

主要是用python调用dsquery查询到dn,再用python调用dsmod进行dn的属性修改. namelist.txt格式如下,部门的字段其实可以换成相应想修改的AD属性,比如AD中title是表示职位,想要修改工号-职务,就将dsmod语句改成如下(具体dsmod user的参数查 dsmod user /?可以看到.) "dsmod user " + dn + " -title " + dep |---------------| |sAMAccount,

MySQL数据库自动生成并修改随机root密码的脚本

在MySQL数据库部署的过程中,在安装了MySQL软件,并配置了my.cnf配置文件后,需要创建MySQL实例. MySQL 5.5实例创建完成了,默认会有登陆用户名和密码为空的用户,一般需要修改root用户密码,并删除无效用户,然后才能提供给应用使用. 这个过程可以通过shell脚本自动完成实例创建,启动,自动生成密码,修改root用户密码,删除无效用户. shell脚本有多种编写方法,我编写的shell脚本如下: #!/bin/bash # this scripts used to init