在我的新服务器(专用,CentOs5)上,/tmp 下每分钟都会创建 2 或 3 个 .myapp 文件(例如“51b9dc4cc246f.myapp”,~500 Mo),以惊人的速度填满我的硬盘。
里面什么也没有crontab -e
。
有任何想法可以从哪里获得吗?
多谢
答案1
我不知道什么会创建这些文件,但是你可以尝试运行定影器在正在生成的进程上找出哪个进程正在创建它们,并从PID开始回溯。
fuser -v /tmp/51b9dc4cc246f.myapp
希望能够为您提供一些您可以使用的信息,例如
fuser -v /var/run/crond.pid
USER PID ACCESS COMMAND
/var/run/crond.pid: root 1698 F.... crond
这向我们表明用户 root 正在运行 PID 为 1698 的 crond,并且打开了 /var/run/crond.pid 文件以供写入(F)。
答案2
以 root 身份检查哪个进程打开了 .myapp 文件:
lsof | grep -i myapp
这也许能给你提供一些线索。
如果没有,则进一步调查,检查它是什么类型的文件:
file 51b9dc4cc246f.myapp
如果是文本,则用 less 打开它。如果不是,则使用字符串查看其中是否有可读内容:
strings 51b9dc4cc246f.myapp | less
如果这没有任何线索,我敢打赌,最好在屏幕会话中使用 lsof 命令,每分钟或更短时间运行一次循环
while [ true ]; do lsof | grep -i myapp; sleep 30; done
祝你好运!
答案3
这里的其他答案推荐使用 fuser 或 lsof,从技术上讲,它们是更好的解决方案。但是这些工具可能很繁琐,因此这里有一个可能更快的替代方案。
创建那么多文件将会消耗大量的处理时间。
运行 top。按 CPU 使用率排序。观察几分钟。写入大量文件的进程可能位于 CPU 消耗量排名前 3-4 位。要验证这一点,请尝试一次停止一个进程。不良行为是否消失?