首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为每个主机创建一个URL并执行它们并将所有UP服务器添加到文件中?

为每个主机创建一个URL并执行它们并将所有UP服务器添加到文件中?
EN

Stack Overflow用户
提问于 2019-06-11 01:38:11
回答 1查看 0关注 0票数 0

我列出了列表中的所有服务器,如下所示:

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
EN

回答 1

Stack Overflow用户

发布于 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()

希望你得到你想要的东西:)有任何问题,评论下来!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档