man*_*ani 5 linux logging grep sed file
我正在尝试使用以下命令(grep 和 sed)检查 /var/log/messages 中最近 10 小时的更改。Grep 正在提取过去 3 天的所有数据。sed 运行成功但没有结果。有人可以帮助我使用这些命令或任何其他命令来检查日志文件中的更改。
sed -n "/^$(date '+%b %_d %H:%M' -d -10 hours)/,\$p" /var/log/messages
grep "^$(date +'%Y-%M-%d %H %M' -d -10 hours)" /var/log/messages
Run Code Online (Sandbox Code Playgroud)
假设您使用的是基于 SystemD 的 Linux,journalctl
则可以使用/var/log/messages.
journalctl支持--since/-S接受根据systemd.time(7)(手册页)格式化的时间戳的选项。因此,对于您的情况,您可以简单地使用-10h“十小时前”:
journalctl -S-10h
Run Code Online (Sandbox Code Playgroud)
通过以下命令解决
awk -v d1="$(date --date="-600 min" "+%b %_d %H:%M")" \
-v d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 ||
$0 ~ d2' /var/log/messages
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助。