【发布时间】:2020-10-11 09:52:06
【问题描述】:
我正在尝试监视 shell 上的命令执行。 我需要将输入命令分开,例如:
input:
ls -l /
output:
total 76
lrwxrwxrwx 1 root root 7 Aug 11 10:25 bin -> usr/bin
drwxr-xr-x 3 root root 4096 Aug 11 11:18 boot
drwxr-xr-x 17 root root 3200 Oct 11 11:10 dev
...
另外,如果我打开另一个 shell,例如,在通过 ssh 连接到另一个服务器之后,我也想这样做。 我一直在使用脚本命令来执行此操作,并且效果很好!
即使 shell 更改(例如通过ssh,或输入 msfconsole),它也会记录所有命令输入和输出。
不过,我发现了两个主要问题:
- 对于我的项目,我需要将每个命令与其他命令分开(使用解码器),而且能够将命令输入和输出分开也很棒,例如:
cmd1. pwd ---> /var/
cmd2. echo "hello world" ---> "hello world"
....
- 有时,由于我想过滤掉的 shell 特殊字符(例如颜色),脚本命令会生成带有垃圾的输出。
所以我一直在考虑这个问题,我想我可以创建一个简单的脚本,从“script”命令写入的文件中读取并处理数据。 不过,我不确定执行此操作的最佳方法是什么。
我正在评估不同的解决方案,我想了解来自社区的不同建议。 也许我失去了一些东西,你知道一个更好的工具而不是脚本命令,或者有一些我没有考虑过的想法。
最好的问候,
【问题讨论】:
-
检查this是否满足您的要求
-
如果可以避免,最好not to parse
ls。
标签: linux shell monitoring