如何找出unix中哪个脚本在什么特定时间运行?

如何找出unix中哪个脚本在什么特定时间运行?,unix,unix-timestamp,Unix,Unix Timestamp,在我的应用服务器中,每天凌晨1点就有一些文件被从一个文件夹中删除。我检查了crontab.wms文件,没有在凌晨1点运行的脚本。 如何找出哪个脚本正在删除文件。凌晨1点正是cron的主要嫌疑点,但进程可以从其他位置启动(例如init)。此外,如果目录可以装载到其他位置,则服务器可能不会删除这些文件。如果是恶意软件导致了这一点,那么进程的起源可能会被故意隐藏。一些关于文件位置和文件内容的信息可能是有用的线索 反复运行ps-aef几秒钟可能会发现罪犯。我会在凌晨1点之前开始运行它数百次而不睡觉。可以

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

凌晨1点正是cron的主要嫌疑点,但进程可以从其他位置启动(例如init)。此外,如果目录可以装载到其他位置,则服务器可能不会删除这些文件。如果是恶意软件导致了这一点,那么进程的起源可能会被故意隐藏。一些关于文件位置和文件内容的信息可能是有用的线索

反复运行ps-aef几秒钟可能会发现罪犯。我会在凌晨1点之前开始运行它数百次而不睡觉。可以检查很多过程

您还可以重复运行以下命令:

/usr/sbin/lsof +d <fullNameOfTheDirectory>
/usr/sbin/lsof+d
列出已打开特定目录(或目录中的文件)的进程。这可以提供一个更简洁的列表,但是您必须幸运地在进程使用目录的确切时间进行探测。您可能需要在多个晚上进行尝试,您将同时需要ps和lsof

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


我想删除是把你搞砸了。您可以在凌晨1点之前归档文件,并在文件丢失时进行恢复,前提是这些文件相当静态。或者,您可以删除写权限几分钟,看看这是否会阻碍进程(您应该仍然看到它访问目录)。这些都是乱七八糟的问题,但在您真正解决之前,可能会修补这些问题。

您是否检查了所有用户的crontab?请安排一个脚本在上午12:55到1:05之间运行。在该脚本中,放置10秒的睡眠时间并收集ps-ef的输出,该输出将列出在此期间运行的所有进程。第二天你可以查看日志。记住每次都要附加到日志,不要覆盖。您对Linux特定的解决方案感兴趣吗?使用一些使用
inotify
技术的守护程序来监视目录是否有帮助?创建一个在00:55运行并创建第二个目录并将每个文件从受害者目录硬链接到第二个目录的脚本,以及一个在01:05运行并将所有文件从第二个目录(只有一个链接?)移回受害者目录的脚本是否有任何好处。基本上,所有的删除都要发生,但是通过给他们一个第二个名字然后恢复文件来保护文件不被删除。还考虑进程会计是否可以帮助…跟踪在0:55-01:05间隔(或任何其他适当的时间帧)中执行的所有进程。。是否有任何方法可以确定是否有故意隐藏的脚本正在删除文件?