我有一个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