我正在编写一个快速的python脚本包装器来查询我们的崩溃计划服务器,这样我就可以从多个站点收集数据,然后将其转换为json进行迁移,我已经完成了大部分工作。它可能有点难看,但我距离获取需要传递给json模块的数据只有一步之遥,因此我可以格式化报告所需的数据。
脚本应该查询ldap,从站点列表中获取名称列表,然后创建一个命令(可以工作)。
但是当在for循环中打印列表时,它会打印出每个字符,而不是每个字符。如果我只打印列表,它会在一行上打印出每个名称。由于用户名不正确,这显然可以通过REST调用。
'''
Crashplan query script
Queries the crashplan server using subprocess calls and formats the output
'''
import subprocess
import json
password = raw_input("What password do you want to use: ")
sitelist = ['US - DC - Washington', 'US - FL - Miami', 'US - GA - Atlanta', 'CA - Toronto']
cmdsites = ""
for each in sitelist:
cmdsites = cmdsites + '(OfficeLocation={})'.format(each)
ldap_cmd = "ldapsearch -xLLL -S OfficeLocation -h ldap.local.x.com -b cn=users,dc=x,dc=com '(&(!(gidNumber=1088))(|%s))' | grep -w 'uid:' | awk {'print $2'}" % cmdsites
users = subprocess.check_output([ldap_cmd], shell=True)
##### EVERYTHING WORKS UP TO THIS POINT #####
for each in users:
# subprocess.call(['curl -X GET -k -u "admin:'+password+'" "https://crashplan.x.com:4285/api/User?username='+each+'@x.com&incBackupUsage=true&strKey=lastBackup"'], shell=True) ### THIS COMMAND WORKS IT JUST GETS PASSED THE WRONG USERNAME
print each #### THIS PRINTS OUT ONE LETTER PER LINE ####
print type(users) #### THIS PRINTS OUT ONE NAME PER LINE ####
答案 0 :(得分:3)