
我們有一個在 CentOS 6.5 機器上運行的新聞伺服器。它是葉節點,並且 cron 設定為每兩分鐘運行一次。我們決定關閉它以解決其他問題,因此我們註解掉 crontab 中的行:
# */2 * * * * /usr/sbin/fetchnews
然而,出於某種原因,我們仍在更新新聞文章。因此我們決定更改該二進位檔案的權限。
chmod 400 /usr/sbin/fetchnews
然後,我們開始每兩分鐘收到一封電子郵件:「/usr/sbin/fetchnews:權限被拒絕」。
我們查看 /etc/cron/hourly,實際上是 /etc 中與 crond 有關的所有內容。它不在 root 的 crontab 檔案中,不在新聞使用者的 crontab 檔案中,也不在任何其他使用者的 crontab 檔案中。
我如何找出導致該二進位檔案運行的原因?
謝謝。
答案1
嘗試grep -ri fetchnews /etc/cron* /var/spool/cron/tabs/*
。
除了您註解掉的行之外,還有其他結果嗎?
答案2
watch "ps -ef | grep fetchnews"
ps -ef | grep fetchnews
將顯示每兩秒的輸出。在 的輸出中ps -ef
,父 pid 是第三個字段,在本例中為 1458:
ulmi 1462 1458 0 18:20 pts/1 00:00:00 sh -c ps -ef | grep ls
這就是催生你的 fetchnews 的工作,它可能會對你有幫助。
(我的水晶球說,也許您嘗試直接編輯 crontabs?只有運行crontab -e
才能保證crond
拾取新選項卡。)
答案3
假設有一個使用者擁有新聞文件,該使用者的個人 crontab 條目中可能有一個 cron 條目負責此操作。用戶 crons 在 RHEL 系統上維護:
$ sudo ls -l /var/spool/cron/
total 4
-rw-------. 1 slm slm 9 Oct 6 13:30 slm
如果您在那裡看到條目,您可以使用它sudo
來查看給定文件中的內容,如下所示:
$ sudo crontab -u slm -l
### blah
您可以簡單地註解掉該文件中的條目,以crontab
禁止它運行。如果您的工作相當簡短,您也可以暫時停用 cron 服務:
$ sudo service crond stop