在我的应用程序服务器中,每天凌晨 1 点正从一个文件夹中删除一些文件。我检查了 crontab.wms 文件,并且没有在凌晨 1 点运行的脚本。如何找出哪个脚本正在删除文件。
问问题
392 次
1 回答
1
正是凌晨 1 点使 cron 成为主要嫌疑人,但进程可以从其他地方启动(例如 init)。此外,如果该目录可以安装在其他地方,那么您的服务器可能不会删除这些文件。如果是恶意软件导致了这种情况,那么进程的来源可能会被有意隐藏。有关文件在哪里以及文件是什么的一些信息可能是有用的线索。
反复运行 ps -aef 几秒钟可能会发现罪魁祸首。我会在凌晨 1 点之前开始运行它数百次而不睡觉。可以有很多过程需要检查。
你也可以重复运行这个:
/usr/sbin/lsof +d <fullNameOfTheDirectory>
列出已打开特定目录(或目录中的文件)的进程。这可以提供更简洁的列表,但您必须幸运地在进程使用目录的时间进行探测。您可能需要尝试很多个晚上,并且您将需要 ps 和 lsof。
如果文件不属于 root,您可以在凌晨 1 点之前 chown root。如果删除成功,则您知道该进程是 root。
我认为删除使您感到困惑。您可以在凌晨 1 点之前存档文件并在它们丢失时恢复它们,假设文件是相当静态的。或者,您可以删除几分钟的写入权限,以查看这是否会阻止该过程(您仍然应该看到它访问目录)。这些是杂牌,但可以修补,直到你真正解决它。
于 2013-09-25T14:30:51.323 回答