Мне нужно запустить утилиту (sdptool), которая проверяет версии прошивки на> 500 серверах. То, что я вставил ниже, работает, но стандартный вывод должен быть записан в файл, по одному на IP-адрес. (ips.txt содержит один IP-адрес на строку.) Как записать стандартный вывод в файлы? Даже один лог-файл будет работать. Спасибо.
import subprocess
with open("ips.txt") as ip_list:
ips = ip_list.readlines()
for ip in ips:
output = subprocess.Popen(["/opt/bin/sdptool", ip, "check"])
Если я использую subprocess.run , кажется, что он запускает команду оболочки последовательно, а не параллельно (но я могу управлять stdout таким образом), и я, вероятно, неверно, что выполнение является последовательным.
output = subprocess.run(["/home/mherzog/sdptool/radfwup", ip, "check"],stdout=subprocess.PIPE)
print(output)
Как минимум, sdptool печатает одну строку (на сервер) для времени и даты, одну строку, содержащую имя модели сервера, одну строку для версии B IOS и одна строка, сообщающая нам, можно ли обновить прошивку до последней версии.