Python 定期查看 "netstat" 命令并在不同输出中打印任何更改的脚本?
Python Script to view "netstat" command periodically and print any changes in different outputs?
我正在编写 python 脚本来定期查看 "netstat" 命令输出并将其保存到文件中。如果 netstat.Print 的不同输出之间有任何端口更改,这些行到另一个文件并保存。
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")`
out_line 将是一个列表,每行 netstat 输出作为列表中的一个条目。现在你可以遍历这个out_list。每次迭代将处理一行 netstat 输出
for line in out_line:
line_list = line.split()
WRITE YOUR PROGRAM HERE
将每一行拆分为单词后,您可以选择将它们存储为列表列表,这样内部列表包含单词,每个完整的内部列表组成一行。像这样:
[
[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]
]
比较引用端口号的索引,如果不同则写入另一个文件。我认为那部分是微不足道的
我正在编写 python 脚本来定期查看 "netstat" 命令输出并将其保存到文件中。如果 netstat.Print 的不同输出之间有任何端口更改,这些行到另一个文件并保存。
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")`
out_line 将是一个列表,每行 netstat 输出作为列表中的一个条目。现在你可以遍历这个out_list。每次迭代将处理一行 netstat 输出
for line in out_line:
line_list = line.split()
WRITE YOUR PROGRAM HERE
将每一行拆分为单词后,您可以选择将它们存储为列表列表,这样内部列表包含单词,每个完整的内部列表组成一行。像这样:
[ [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] ]
比较引用端口号的索引,如果不同则写入另一个文件。我认为那部分是微不足道的