我有一个进程,将大量数据写入stdout,并将其重定向到日志(log)文件.我希望通过偶尔将当前文件复制到新名称并截断来限制文件的大小.
我常用的截短文件的技巧,比如
cp /dev/null file
不工作,可能是因为流程正在使用它.
有什么方法可以截断文件吗?或者删除它,并以某种方式将进程的stdout与新文件关联?
FWIW,这是一个第三方产品,我不能修改它来改变它的日志(log)模型.
EDIT在文件上重定向似乎与上面的副本有相同的问题-文件下次写入时会恢复到以前的大小:
ls -l sample.log ; echo > sample.log ; ls -l sample.log ; sleep 10 ; ls -l sample.log
-rw-rw-r-- 1 user group 1291999 Jun 11 2009 sample.log
-rw-rw-r-- 1 user group 1 Jun 11 2009 sample.log
-rw-rw-r-- 1 user group 1292311 Jun 11 2009 sample.log