我需要从客户端记录每个用户的 ssh session 。我正在使用 T 恤来做这个
ssh abc@example.com |发球台 $(whoami).$(date).log
但是,我只想在 ssh session 中记录用户命令并跳过命令的输出。例如:如果用户跟踪了一个大文件,我不想记录整个文件。
我尝试对命令提示符进行 grep 并将输出重定向到另一个文件。
ssh abc@example.com | tee >(cat 日志文件) | grep "CMD_PROMPT_PATTTERN">> $(whoami).$(date).log
但如果用户更改命令提示符,这将不起作用。
我想知道是否有办法从文本文件中 grep 查找 linux 命令。
一些相关背景: 我读过其他帖子,建议在 ssh 周围添加一个包装器来进行日志记录。 但在这种情况下,用户可以通过 ssh 从 example.com 连接到另一台主机(例如 example2.com),我们还需要从起始主机记录在这里执行的命令。我也尝试过击键记录器,但无法区分不同用户执行的命令。
对于实现日志记录的任何其他建议,我将不胜感激。
最佳答案
为什么不 tail -f
用户的 .bash_history ? (或者他们使用什么外壳),但首先你需要设置“在线”写入它 export PROMPT_COMMAND='history -a'
关于linux - 使用 tee 记录 ssh session 并为用户命令解析文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35169270/