如何找出在unix的特定时间运行的脚本?

时间:2013-09-25 12:54:00

标签: unix unix-timestamp

在我的应用程序服务器中,一些文件正在每天凌晨1点从一个文件夹中删除。我检查了crontab.wms文件,并且没有脚本在凌晨1点运行。 如何找出删除文件的脚本。

1 个答案:

答案 0 :(得分:1)

正好1AM使cron成为主要嫌疑人,但是可以从其他地方(例如init)启动进程。此外,如果目录可以安装在其他地方,那么您的服务器可能不会删除文件。如果恶意软件导致此问题,则可能会故意隐藏进程的来源。有关文件位置和文件内容的一些信息可能是有用的线索。

反复运行ps -aef几秒钟可能会发现罪魁祸首。凌晨1点之前,我会在没有睡觉的情况下运行数百次。可以有很多过程需要检查。

你也可以反复运行:

/usr/sbin/lsof +d <fullNameOfTheDirectory>

列出已打开特定目录(或目录中的文件)的进程。这可以给出一个更简洁的列表,但是你必须很幸运能够在进程正在使用目录时进行探测。你可能需要尝试多个夜晚,你会想要ps和lsof。

如果文件不属于root,则可以在凌晨1点之前显示root。如果删除成功,那么您知道该进程是root。

我认为删除会搞砸你。您可以在1AM之前归档文件,并在丢失时恢复它们,假设文件是​​相当静态的。或者,您可以删除几分钟的写入权限,以查看是否会阻止该过程(您仍然应该看到它访问该目录)。这些是kludges,但可以修补,直到你真的可以解决它。