繁体   English   中英

如何使用 linux 中的命令从任何日志文件中获取最后 N 分钟或 N 小时的日志

[英]How to get last N min or N hour logs from any log files using command in linux

我需要从任何日志文件中获取最后 n 分钟或 n 小时的日志。 我搜索并执行了许多命令,但没有一个不起作用。 如果有任何特定的命令而不是脚本,那将是完美的。 我的 Nginx 的时间格式是“2022/01/05 11:47:41”

我尝试了以下命令

awk -v bt=$(date "+%s" -d "30 minutes ago") '$1 > bt {printf("%s|%s|%s\n", strftime("%F %T",$1), $3, $7)} ' /var/log/nginx/access.log

sed -n "/^$(date --date="60 minutes ago" "+%d/%b/%Y:%H:%M")/,\$p" /var/log/nginx/access.log

grep -E (date -d -15minutes "+%Y/%m/%d %H:%M"|date -d "+%Y/%m/%d %H:%M")

和许多类似上面的命令。

试试这个命令,它对我有用

sed -n /$(date --date="15 minutes ago" "+%T")/,/$(date "+%T")/p logfile > newfile

date --date="15 minutes ago" "+%T"是 15 分钟之前的时间

date "+%T"是当前时间

您必须修改基于时间格式和您的日志文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM