为什么 tail 和 grep 的组合会在一段时间后冻结我的 ssh 会话?

为什么 tail 和 grep 的组合会在一段时间后冻结我的 ssh 会话?
sudo tail -f -n0 /var/log/nginx/access.log | grep -Ev '1.2.3.4'

我有一个 nginx.log,需要监控除我自己的 IP(1.2.3.4)之外的所有线路。除了来自我自己 IP 的连接外,Web 服务器没有看到太多活动,所以我想看看还发生了什么。

上述命令组合有效期为 cca。10 分钟后,命令输出就冻结了 - 我的 ssh 会话没有终止,但需要很长时间才能使用 Ctrl-Z 恢复。

有任何想法吗?

编辑1:我已经尝试了迄今为止发布的建议,但似乎都没有发挥上述命令所能达到的作用。

答案1

通常来说,在grep -va 中使用tail -f正则表达式不是一个好主意。在 grep 中使用正则表达式也是一个坏主意。

你最好尝试类似这样的方法:

tail -f /var/log/nginx/access.log | perl -pe 'if (/1\.2\.3\.4/) {$_ = ""}'

-n0如果仅需要遵循新行,请添加。

编辑:请注意将 ' 放在 $ 符号外面,以避免 shell 评估

相关内容