[英]Logging to a non blocking named pipe?
我有一个问题,我无法在stackoverflow或网络上的任何地方找到帮助。
我有一个程序(芹菜分布式任务队列),我有多个实例(工人),每个实例都有一个日志文件(celery_worker1.log,celery_worker2.log)。
重要的错误存储在数据库中,但我喜欢在运行新操作时不时地拖尾这些日志以确保一切正常(loglevel更低)。
我的问题:这些日志占用了大量磁盘空间。 我想做什么:能够只在我需要时“观察”日志(tail -f),而不需要占用大量空间。
我的想法到现在为止:
有没有办法有一个非阻塞的命名管道,它会在尾部时抛出stdout,并在没有时抛出/ dev / null?
或者这种管道有技术难题吗? 如果有,他们是什么?
谢谢您的回答!
您可以尝试共享内存设备man:shm_overview或者其中一些。 您需要将它们组织为循环缓冲区,以便它们存储日志的最后N kb,每当您使用阅读器读取它们时,它都会将所有内容输出到您的控制台。 busybox的syslog / logread诉讼采用了这种方法(参见logread.c )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.