0 scripts
zcat -rf ~/dragon | sort | grep -iaE -A 5 'cpu[1-7].*(8[0-9]|9[0-9]|100)' | tee cpu.txt
Run Code Online (Sandbox Code Playgroud)
您将看到的内容取决于 Dragon 目录中文件的内容。
zcat -rf ~/dragon
:查找~/dragon
文件夹中的所有文件并将其内容发送到stdout。使用 gzip 压缩的文件将在其内容发送到 stdout 之前解压缩。我猜大多数文件要么是文本,要么是用 gzip 压缩的文本。在我看来,这些是日志文件。由于 zcat 命令解压缩所有文件,因此结果预计仅为文本。但是,该-f
标志强制zcat
处理任何类型的文件,因此如果碰巧有二进制文件(例如照片或音频文件),其内容将被发送到标准输出。zcat
可以毫无问题地运行 PB。|
上一个命令的输出(由 zcat 生成的文本)被馈送到下一个命令的输入sort
:这些行按字典顺序(字典顺序)排序。请注意,排序必须读取所有输入才能进行操作,因为您必须读取到最后一行才能正确对所有行进行排序。几 Mb 还可以,几 Gb 对您的计算机来说可能会很困难,一百 Gb 或几 Tb 肯定会失败。排序后的行被发送到标准输出。|
上一个命令的标准输出(即排序行)被馈送到下一个命令grep -iaE -A 5 'cpu[1-7].*(8[0-9]|9[0-9]|100)'
:它过滤文本行。仅打印与搜索模式匹配的行。具体搜索什么?任何包含包含cpu
1 到 7 之间的数字 ( cpu[1-7]
) 的单词的行,然后是任何内容 ( .*
),然后是 8 和另一个数字 ( 8[0-9]
)、9 和另一个数字 ( 9[0-9]
) 或100
。cpu
根据选项可以写成大写或小写-i
。grep
即使数据看起来不像文本,也会通过该-a
选项进行搜索(记住 zcat-f
选项)。-E
启用扩展正则表达式,它允许您表达更复杂的模式,并将-A 5
打印匹配行和接下来的 5 行,无论它们是否与搜索模式匹配。|
...tee cpu.txt
将输入(来自先前命令的行)打印到标准输出(此时很可能是您的屏幕)和名为的文件cpu.txt
那么你会得到什么?同样,很难准确地分辨出几行文本,但可以肯定地表明哪个处理器的使用率高于 80%。也许是这样的事情:
2022-10-11T21:42:17.12451 warning CPU3 went mad at 98% usage for more than 1 minute. Over heating
bla bla bla 1
bla bla bla 2
bla bla bla 3
2022-10-11T21:43:02.5460 warning cpu2 at 86% usage for more than 3 days. consider upgrading your hardware
bla bla bla 1
bla bla bla 2
bla bla bla 3
bla bla bla 4
bla bla bla 5
Run Code Online (Sandbox Code Playgroud)
如果您没有看到任何内容,则表明您的文件中没有 CPU 使用率超过 80%。