要查看的Python脚本";netstat";定期命令并打印不同输出中的任何更改?

要查看的Python脚本";netstat";定期命令并打印不同输出中的任何更改?,python,linux,netstat,Python,Linux,Netstat,我正在编写一个python脚本来定期查看“netstat”命令输出并将其保存到文件中。如果netstat的不同输出之间有任何端口更改,请将这些行打印到另一个文件并保存 netstat命令的示例输出: tcp 0 77 100.73.96.7:56855 31.13.79.246:https侦听 tcp 0 32 100.73.96.7:46551 68.232.44.121:https侦听 tcp 0 1 100.73.96.7:60538 198.252.206.16:http侦听 tcp 0

我正在编写一个python脚本来定期查看“netstat”命令输出并将其保存到文件中。如果netstat的不同输出之间有任何端口更改,请将这些行打印到另一个文件并保存

netstat命令的示例输出:

tcp 0 77 100.73.96.7:56855 31.13.79.246:https侦听
tcp 0 32 100.73.96.7:46551 68.232.44.121:https侦听

tcp 0 1 100.73.96.7:60538 198.252.206.16:http侦听
tcp 0 77 100.73.96.7:51728 103.31.6.32:https侦听

我的脚本如下所示: 我能够将netstat命令打印到文件中

import subprocess
import time,threading

def myfun():
    p = subprocess.Popen(["netstat", "-at"], stdout=subprocess.PIPE)
    out = p.stdout.read()
    print out
    myfile = open("myfile","a")
    myfile.write(out)
    myfile.close()
    print(time.ctime())
    threading.Timer(10,myfun).start()
myfun()

如何进一步进行。有人帮忙吗?

我不知道在你的问题中,netstat的不同输出意味着什么。这可能意味着每次运行的输出不同,或者周期性运行的输出不同。无论是什么,您都可以根据需要进行修改

第一步是逐行分割输出,然后逐字分割。使用Python拆分方法:

`out_line = out.split("\n")` 将每行拆分为单词后,您可以选择将它们存储为列表列表,以便内部列表包含单词,并且每个完整的内部列表组成一行。大概是这样的:

[ [tcp, 0, 77, 100.73.96.7:56855, 31.13.79.246:https, LISTEN], [tcp, 0, 32, 100.73.96.7:46551, 68.232.44.121:https, LISTEN] ] [ [tcp,0,77100.73.96.7:56855,31.13.79.246:https,收听], [tcp,0,32,100.73.96.7:46551,68.232.44.121:https,收听] ]
比较引用端口号的索引,如果它们不同,则写入另一个文件。我相信那部分很琐碎

你试过什么?这个网站是为了寻求帮助。你可能正在寻找一个像Freelorer.com这样的网站 [ [tcp, 0, 77, 100.73.96.7:56855, 31.13.79.246:https, LISTEN], [tcp, 0, 32, 100.73.96.7:46551, 68.232.44.121:https, LISTEN] ]