|
18鱼币
我get出来的SBTS_scf都是一个名字,怎么可以把这个SBTS——scf名字前面添加特殊字符区分开,否则出来的名字都是SBTS_SCF,后面的都把前面的覆盖了
例如:
每一个SBTS_SCF名字之前都顺序加上,10.42.88.1这个名字,然后下一个名字是10.42.88.2这个名字。以此类推,不论hosts后面的IP地址有上千个,也可以批量一条条的顺序执行循环。
["GET", ["/rom/config/SBTS_SCF.xml", "SBTS_SCF.xml"]],
["FIX_SCF", ["SBTS_SCF.xml", "FIXED_SBTS_SCF.xml"]],
],
"hosts": [
["10.42.88.1", "SSHUSER", "SSHPASS", "WEBUIUSER", "WEBUIPASS"],
["10.42.88.2", "SSHUSER", "SSHPASS", "WEBUIUSER", "WEBUIPASS"]
]
我把主要的两个程序文件放在附件的压缩文件里面了,分别是:
config.json和主程序scf_recovery.py 2个文件。
用的是python 2.7的,在windows系统下打开CMD,然后把scf_recovery.py拖进去执行python scf_recovery.py config.json。
本帖最后由 SixPy 于 2016-12-8 11:21 编辑
python3 >>> import json
>>> from urllib.request import urlopen
>>> from itertools import product
>>> json_data ='''{
"task":[
["GET", ["/rom/config/SBTS_SCF.xml", "SBTS_SCF.xml"]],
["FIX_SCF", ["SBTS_SCF.xml", "FIXED_SBTS_SCF.xml"]]
],
"hosts": [
["10.42.88.1", "SSHUSER", "SSHPASS", "WEBUIUSER", "WEBUIPASS"],
["10.42.88.2", "SSHUSER", "SSHPASS", "WEBUIUSER", "WEBUIPASS"]
]
}'''
>>> j = json.loads(json_data)
>>> for t,h in product(j['task'],j['hosts']):
mathod,URI = t[0],t[1][0]
ip,*_ = h
URL = 'http://' + ip + URI
if mathod == 'GET':
rsp = urlopen(URL)
print(len(rsp.read()))
|
|