这个cron作业从哪里运行?

前段时间,我设立了一个cron工作来每分钟运行一个脚本。 从那以后,我已经把系统从ubuntu intrepid升级到ubuntu的业力。 现在这个工作失败了。 我每分钟收到一次电子邮件。

没问题吧? 我可以解决这个问题,并继续前进。 好吧,但是我现在没有时间去做,所以我只想closures这个工作,直到我接手。

好吧,这里是奇怪的地方。 我找不到cron的工作。 它不在用户(或任何其他用户)的crontab(在/ var / spool / cron下)。 它不在/ etc / crontab中。 它不在/etc/cron.d中。 我recursion地grepped整个/ etc /和/ var /脚本的名称。 找不到它。

我已经在cron的pid上运行了lsof,看它是否有一些奇怪的位置,我不熟悉open,不行。

我在这里错过了什么? 工作正在运行。 它正在由cron运行(电子邮件来自cron – 我可以看到在cron下运行的系统日志中),但它似乎并不存在于任何地方。

在我的Debian系统中, / var / log / syslog包含每个执行的cron作业的条目…

Jan 17 20:10:01 machine1 /USR/SBIN/CRON[1545]: (convict) CMD (fetchmail -s >/dev/null 2>&1) Jan 17 20:17:01 machine1 /USR/SBIN/CRON[1800]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Jan 17 20:20:01 machine1 /USR/SBIN/CRON[1914]: (convict) CMD (fetchmail -s >/dev/null 2>&1) 

如果你的工作是由cron执行的,你应该在/ var / log / syslog中find它的引用。

我有一些事情可以尝试,可能有帮助。

要查看系统上的cron作业,请尝试以下操作:

 crontab -l 

这是我得到的(因为我只有一个工作设置运行):

 #CrInfo osascript -e "tell application "iTunes" to updateAllPodcasts" 30 2 * * * osascript -e "tell application "iTunes" to updateAllPodcasts" 

这将列出将按计划运行的工作。

要列出系统上所有正在运行的进程及其完整文件系统path,请键入:

 ps -xa 

你会得到这样的输出:(这会让你更容易知道在哪里删除运行你的邮件的脚本)

  4968 ?? 0:03.24 /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal -psn_0_655520 6112 ?? 0:23.31 /Applications/QuickTime Player.app/Contents/MacOS/QuickTime Player -psn_0_712878 7203 ?? 4:33.38 /Applications/Transmit.app/Contents/MacOS/Transmit -psn_0_946407 7240 ?? 2:56.99 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome -psn_0_975086 7358 ?? 0:00.02 /System/Library/PrivateFrameworks/KerberosHelper.framework/Resources/LKDCHelper 7369 ?? 0:04.72 /usr/sbin/AppleFileServer 

IBM网站上还有一个页面 ,可以帮助您正确地使用Cron。

这就是说,如果你的工作没有出现在cron中,你确定你没有使用一些你忘记的工具来运行它? 一些自定义的deamon应用程序,你可能已经下载了例如?

当你知道pid的时候,看看/proc/<pid> ,也许你会得到一些有用的信息。

我知道这是5岁,但对于任何人都有同样的问题(我有),这里是我的解决scheme:

我用sudo crontab -e -u username检查每个用户的crontab。“username”应该是一个像“www-data”这样的现有用户名(这是我的情况的罪魁祸首)。

希望这有助于某人。

它可能在/etc/cron.daily (我假设它以root身份运行)。 这些作业在crontab -l中不可见,但仍然执行。