2017-02-17 69 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作業沒有出現的原因。