如何清除被正在运行的进程锁定的文件内容?

如何清除被正在运行的进程锁定的文件内容?

我在 Ubuntu 机器上运行 JMeter。并进行 12 小时的测试。在此期间,我观察到日志文件增加到非常大的大小(大约 18 GB)。

有什么方法可以在 cron 作业中使用来定期清理文件的内容吗?

我尝试使用echo -n "" > jmeter-server.logusing sudo,但它不起作用,因为在测试过程中文件被 jmeter-server.sh 锁定。

尝试过但找不到类似的帖子。

答案1

尝试:

sudo tee thefile </dev/null

或者:

sudo truncate -s 0 thefile

答案2

Sudo 在转发和管道方面并不像您期望的那样工作。如果你要 sudo 你的命令,它只会 sudo 之前的部分>。执行 asudo bash - c "full command"或暂时成为 rootsudo -s并执行您的命令。

正在打开的文件不会阻止您编辑其内容。不过,删除文件后它不会删除该文件。

另请查看copytruncatelogrotate 选项

相关内容