/root/.forever
创建的日志文件(forever
)已达到很大的范围,几乎填满了硬盘。
如果在forever
进程仍在运行时要删除日志文件,forever logs 0
将返回undefined
。记录当前forever
进程的唯一方法是再次stop
它和start
节点脚本。
有没有办法在不中断日志记录或forever
进程的情况下修剪日志文件?
答案 0 :(得分:0)
所以Foreverjs将继续写入相同的文件句柄,理想情况下会支持允许您向其发送信号并旋转到其他文件的内容。
如果没有,需要在Forever.js包上进行代码更改,您的选项如下:
cp forever-guid.log backup && :> forever-guid.log;
如果您以快速的速度写入日志文件,这将有一点风险,您最终会在备份和归零之间写入日志行,从而导致丢失日志行。
您可以设置logrotate以观察永久日志目录,以根据文件大小或时间自动复制和截断。
您可以让您的日志记录代码查看日志文件的行数,然后执行复制截断 - 这样可以避免潜在的数据丢失。
编辑:我原本以为split
和truncate
可以胜任这项工作。他们可能会,但实现看起来真的很尴尬。 Split
没有很好的方法将文件拆分为短文件(原始日志)和长文件(备份)。 Truncate
(除了它并不总是安装的事实之外)不会重置写指针,因此永远只会写入相同的字节,从而产生奇怪的数据。
答案 1 :(得分:0)
您可以截断日志文件而不会丢失其句柄(reference)。
cat /dev/null > largefile.txt