lsof显示tmp文件被标记为已删除

我有一个cron产生了很多(15GB)的PHP警告,并将它们写入日志文件

我杀了这个进程,作为一个临时的措施,我停止了redirectstderr到stdout,所以我没有填满我的存储空间。

更改后,我继续收到相同的“高IO”警告,服务器存储暂时增加,然后恢复到原来的大小。原始日志文件为空。

我find了一个使用lsof -p <PID of cron> ,第二个文件变大了。

 sh 25626 root 10u REG 202,1 21280244045 773 /tmp/tmpfZ14vFH (deleted) 

这个文件被标记为已删除,我无法在/ tmp目录中find它。

请提供一些有关这方面的见解。

进程运行时,操作系统是否将stderr写入tempprary文件?

您必须循环(启动/停止)拥有文件句柄的进程。

ps -ef |grep 25626作为开始点来查找持有它的进程,如果可能的话,将其循环。 它将允许文件句柄释放,磁盘空间将被清除。

我知道你已经这样做了(发现sh是有问题的进程),但是这里是我的笔记中的转到命令(可能在以前的堆栈交换中find),用于查找这些神秘删除的文件: lsof | grep deleted | numfmt --field=7 --to=iec | head lsof | grep deleted | numfmt --field=7 --to=iec | head