我正在编写一个python脚本,用于检查特定IP /端口的活动连接数。为此,我使用os.system('my_command')来获取输出。 os.system返回我传递的命令的退出状态(0表示返回的命令没有错误)。 如何将os.system抛出的值存储到变量中的STDOUT?这样这个变量以后可以在函数中用于计数器。 像subprocess,os.popen这样的东西可以提供帮助。有人可以建议吗?
答案 0 :(得分:14)
a=os.popen("your command").read()
存储在变量a
的新结果:)
答案 1 :(得分:5)
import subprocess
p = subprocess.Popen('my_command', stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, error = p.communicate()
答案 2 :(得分:1)
import subprocess
p = subprocess.Popen('my_command', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
out, error = p.communicate()
答案 3 :(得分:0)
netstat -plant | awk '{print $4}' | grep %s:%s | wc -l
您可以使用Python进行拆分,点击和计数:
process = subprocess.Popen(['netstat', '-plant'], stdout=subprocess.PIPE)
num_matches = 0
host_and_port = "%s:%s" % (ip, port)
for line in process.stdout:
parts = line.split()
if parts[3] == host_and_port: # or host_and_port in parts[3]
num_matches += 1
print num_matches