对于列表中的每个IP运行命令并在字符串匹配时退出的Python代码,可以使用以下代码实现:
import subprocess
def run_command(ip_list, command, target_string):
for ip in ip_list:
try:
output = subprocess.check_output(["ssh", ip, command])
if target_string in output.decode():
return ip
except subprocess.CalledProcessError:
continue
return None
# 示例调用
ip_list = ['192.168.1.1', '192.168.1.2', '192.168.1.3']
command = 'some_command'
target_string = 'some_string'
result = run_command(ip_list, command, target_string)
if result:
print(f"匹配到字符串的IP地址为:{result}")
else:
print("未找到匹配的IP地址")
以上代码通过subprocess模块调用ssh命令执行远程命令,并在输出结果中搜索目标字符串。对于列表中的每个IP,依次执行命令,如果在输出中找到目标字符串,则立即退出并返回该IP地址。如果所有IP都没有匹配的结果,则返回None。
注意,这段代码假设你已经配置了ssh免密登录,可以直接通过IP地址执行远程命令。如果没有配置免密登录,可以使用paramiko库进行SSH连接和执行命令。
此代码的应用场景包括但不限于:
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上推荐的产品仅代表腾讯云的相关产品,其他云计算品牌商也有类似的产品和服务可供选择。
领取专属 10元无门槛券
手把手带您无忧上云