您可以编写一个 shell 脚本,其中使用 tail -f
命令查看实时日志,并在特定条件下停止查看日志。以下是一个示例脚本,它将一直监听日志,直到收到用户输入命令:
#!/bin/bash
# 通过参数传入日志文件路径
log_file=$1
# 函数,监听日志并过滤
tail_logs() {
tail -f "$log_file" | grep -E "连接失败"
}
# 启动监听日志的函数
tail_logs &
# 获取监听日志的进程 ID
tail_pid=$!
# 等待用户输入命令
echo "正在监听日志,请按下 Ctrl+C 停止监听"
read -r -d '' _
# 当用户输入命令后,停止监听日志
kill "$tail_pid"
在这个脚本中,我们首先定义了一个名为 tail_logs
的函数,它使用 tail -f
命令监听日志文件,并通过 grep
过滤出包含 "连接失败" 的行。然后,我们在后台启动了这个函数,使它在后台持续运行。接着,我们获取了监听日志函数的进程 ID,并使用 read
命令等待用户的输入。最后,当用户输入命令后,我们通过 kill
命令停止了监听日志的进程。
您可以通过将日志文件路径作为参数传递给这个脚本来使用它,例如:
bash./watch_log.sh /var/log/mylog.log
请注意,这个脚本中停止监听日志的条件是用户手动输入命令,您可以根据实际需求修改停止条件。