我正在运行一个守护进程,该进程必须无限期运行(可以说是“服务”),并希望记录其输出。一个简单的解决方案,例如:
./long-running-process > log.out &
...由于文件失败log.out
:
emacs
或vi
为了使日志文件的大小易于管理,我可以使用split
bash命令:
./long-running-process | split -l 30000
此解决方案使它创建的日志文件的大小可管理,但是它可能用完后缀(split: output file suffixes exhausted
),或者,如果后缀空间很大,它也可能会耗尽文件系统空间。
因此,我正在寻找一种解决方案,该方案将生成许多日志文件,并且每个日志文件的大小都是可管理的,并且还将在它们之间轮换,以使将要使用的总磁盘空间达到上限。
是否有可用的解决方案,或者我必须在应用程序级别实施它?
砍伐原木
Apache项目有一个有用的命令rotatelogs
旨在通过输入管道读取收到旋转输入约rotatelogs
然后还有cronolog
更好的时间处理。Cronolog网站
但是,如果您也要旋转,则值得考虑使用logrotate,但是logrotate将需要一种机制来触发新的日志文件,(发送信号,重新启动程序,...)。如果您正在记录标准输出并且不想重新启动该过程,则可能会在这里进入rotatelogs / cronolog。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句