可能重复:
将日志文件变成一种循环缓冲区
我有一个守护进程应用程序,它会将其日志打印到 stdout/stderr。我正在寻找一种方法来保留日志的最后 N 行在记忆中并根据需要访问它们,最好使用像 cat 这样简单的工具。这些日志不必保存到磁盘。
基本上我很想做类似的事情:
./mydaemon.sh | memlog 100 mydaemonlog &
然后,之后:
cat /some/path/here/mydaemonlog
我会得到最后 100 行日志,然后它会在文件中传输时继续打印日志mydaemonlog
。
是否有某种工具能够完成memlog
上述示例中所做的事情?
答案1
您可以将日志输出到 /dev/shm,然后使用 tail 获取最后 n 行。
./mydaemon.sh >/dev/shm/log
tail -100 /dev/shm/log
答案2
有内存 sqlite 数据库。管理它的脚本可以确保一次只有 100 行。