我列出了列表中的所有服务器,如下所示:
goldy11.abc.host.com
goldy12.abc.host.com
goldy21.pqr.host.com
goldy22.pqr.host.com
goldy31.def.host.com
goldy32.def.host.com
goldy41.jhk.host.com
goldy42.jhk.host.com
goldy81.abc.host.com
goldy82.abc.host.com
goldy91.pqr.host.com
goldy92.pqr.host.com
goldy71.def.host.com
goldy72.def.host.com
goldy51.jhk.host.com
goldy52.jhk.host.com
现在我想通过为每个服务器创建url来ping所有上述服务器,如下所示:
http://goldy11.abc.host.com:8080/check
http://goldy12.abc.host.com:8080/check
http://goldy21.pqr.host.com:8080/check
http://goldy22.pqr.host.com:8080/check
http://goldy31.def.host.com:8080/check
http://goldy32.def.host.com:8080/check
http://goldy41.jhk.host.com:8080/check
http://goldy42.jhk.host.com:8080/check
http://goldy81.abc.host.com:8080/check
http://goldy82.abc.host.com:8080/check
http://goldy91.pqr.host.com:8080/check
http://goldy92.pqr.host.com:8080/check
http://goldy71.def.host.com:8080/check
http://goldy72.def.host.com:8080/check
http://goldy51.jhk.host.com:8080/check
http://goldy52.jhk.host.com:8080/check
如果我获得了200个状态代码,则意味着服务器已启动并运行,因此最后我将file (hosts.txt)
逐行启动并运行所有服务器。我想在python中做所有这些事情,所以示例文件最后看起来像这样(假设所有服务器都启动并运行,我们为它们获得了200个状态代码)但是如果任何服务器已经崩溃,那么我们就不会添加它文件:每当我们运行这个python脚本时,它应该覆盖hosts.txt文件中的所有内容。
[servers]
goldy11.abc.host.com
goldy12.abc.host.com
goldy21.pqr.host.com
goldy22.pqr.host.com
goldy31.def.host.com
goldy32.def.host.com
goldy41.jhk.host.com
goldy42.jhk.host.com
goldy81.abc.host.com
goldy82.abc.host.com
goldy91.pqr.host.com
goldy92.pqr.host.com
goldy71.def.host.com
goldy72.def.host.com
goldy51.jhk.host.com
goldy52.jhk.host.com
所以我这样开始,但是当我创建一个URL时,它无法执行URL。看起来当我调试时,我的主机变量未正确映射。此外,到目前为止,我将所有UP服务器存储在active_hosts
变量中,然后如果此列表大小超过0,那么我将从此列表中的所有内容写入文件。这可能吗?
import json
import requests
// .... other code
all_hosts = hosts1 + hosts2
print all_hosts
active_hosts = []
for host in all_hosts:
try:
url = "http://"+host+":8080/check"
r = requests.head(url)
if r.status_code == 200:
active_hosts.append(host)
except requests.ConnectionError:
print("failed to connect")
// write to a file if active_hosts size is greater than 0
发布于 2019-06-11 10:40:43
如果添加您所面临的错误的输出会更好。而对于第二个问题。
如果此列表大小超过0,那么我将从此列表中的所有内容写入文件。这可能吗?
是的,有可能做到这一点。为此,您只需要计算列表的长度,如果它超过0,则将其写入文件中。
# Checks for if length of host more than 0
if len(active_hosts) >0:
# opens file in append mode
file = open("Filename.txt","a")
# Write the list of active hosts in file
f.write(active_hosts)
# Closes file
f.close()
希望你得到你想要的东西:)有任何问题,评论下来!
https://stackoverflow.com/questions/-100006980
复制相似问题