2017-02-17 102 views
0

我的问题是如何找到一个特定的cron工作?如何查找特定的cron作业?

我有一个每天在我的网络/电子邮件服务器上运行的cron作业,我确信它存在,因为我每天都会收到一封电子邮件。这是一个LetsEncrypt SSL证书更新。现在我想修改它,但我无法在任何地方找到它。

(编辑:感动“的事情,我已经试过”从这里到答案)

+0

你在'/ var/spool/cron /'中搜索了吗? –

+0

是的,我做到了。它不在那里。 –

+0

也许检查你的日志,找到你的特定的cron行 –

回答

0

请问您的网络/电子邮件服务器已经得到了部署在集装箱任何服务? 检查'docker ps'的输出并查看是否有任何正在运行的相关网络/电子邮件服务。连接到这些实例并找到cron条目(如果有的话)。

+0

感谢您的帮助,但它没有容器。 –

+0

检查进程列表,看看是否有'ps aux | grep defunct'的僵尸进程 – sasubillis

0

Cron作业是用户特定的或系统范围的。您可以通过运行以下命令根列表中的所有用户的用户特定cron作业:

for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l; donesource

如果它没有找到,它可能是一个系统范围的cron作业,它位于以下之一文件夹:

etc/crontab 
etc/cron.d 
etc/cron.daily 
etc/cron.hourly 
etc/cron.monthly 
etc/cron.weekly 

尝试运行:grep -rnw '/etc/' -e 'keyword'

此命令可以列出你的内心/etc/包含你正在寻找的关键字的所有文件因为它可能会列出你无关的文件。

在我的情况下,LetsEncrypt证书更新的工作竟然是在etc/crontab,我以为我已经与crontab -e已经检查,但事实证明它们是不同的:crontab -e是用户特定cron作业,而etc/crontab是系统广泛的cronjobs。这也是当我列出所有用户的所有cron作业时,这个cron作业没有出现的原因。