linux – 登录到非阻塞命名管道?
我有一个问题,我无法在stackoverflow或网络上的任何地方找到帮助.
我有一个程序(芹菜分布式任务队列),我有多个实例(工人),每个实例都有一个日志文件(celery_worker1.log,celery_worker2.log). 重要的错误存储在数据库中,但我喜欢在运行新操作时不时地拖尾这些日志以确保一切正常(loglevel更低). 我的问题:这些日志占用了大量磁盘空间. 我的想法到现在为止: >将日志输出到stdout,而不是文件:因为我有很多工人输出到不同的文件,所以不可能在这里输出日志,但我想一次性地将它们全部拖尾(tail -f celery_worker * .log) 有没有办法有一个非阻塞的命名管道,它会在尾部时抛出stdout,并在没有时抛出/ dev / null? 或者这种管道有技术难题吗?如果有,他们是什么? 谢谢您的回答! 解决方法
让每个工作人员登录到stdout,但将每个stdout连接到一个实用程序,该实用程序根据大小或时间自动调整和旋转日志.
multilog和
svlogd就是这样的例子.对于那些程序,您只需拖尾“当前”日志文件.
你是对的,logrotate不是解决问题的正确方法. 命名管道将无法正常工作.最好的情况是,你的作者可以填满他们的管道然后丢弃后续日志,这与你想要的行为相反. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |