為什麼除非在 SLES 中重新啟動 crond,否則新的 cronjobs 會被忽略?

為什麼除非在 SLES 中重新啟動 crond,否則新的 cronjobs 會被忽略?

我為使用者新增了一個新的 cronjob (SUSE LINUX Enterprise Server 9.4):

# su - XXX
$ crontab -e

這就是我添加的內容:

* * * * * echo `date` >> /home/XXX/a.txt

但 a.txt 沒有建立...它只會在 root 重新啟動 crond 時建立...

問:為什麼?

更新:

machine:~ # chage -l XXX
Minimum:    1
Maximum:    99999
Warning:    7
Inactive:   -1
Last Change:        Apr 11, 2011
Password Expires:   Never
Password Inactive:  Never
Account Expires:    Never
machine:~ # 

所以用戶或其密碼不會過期。

更新: cron 版本:

cron-3.0.1-920.18

我嘗試為 root 使用者新增一個新的 crontab .. 是一樣的 :D 新的 root cronjobs 也沒有運行 .. :D看起來“crontab -e”不會重新加載 CROND 或其他東西...

答案1

我嘗試了上面的程式碼,它在 Red Hat Fedora 14 上運行良好。

* * * * * echo `date` >> /home/saml/a.txt

文件輸出:

$ tail -f a.txt 
Fri Oct 4 14:38:01 EDT 2013
Fri Oct 4 14:39:01 EDT 2013
Fri Oct 4 14:40:01 EDT 2013

值得嘗試的事情

  1. 您能否確認該crond服務正在運作:

    $ sudo service --status-all |& grep crond
    crond (pid  1673) is running...
    
  2. 確認 cron 的假脫機目錄的設定。

    $ rpm -qf $(type -P /usr/sbin/crond)
    cronie-1.4.8-2.fc14.x86_64
    
    $ rpm -ql cronie | grep '/var'
    /var/spool/cron
    

    列出您的目錄,我們將在此處檢查是否存在和權限:

    $ sudo ls -ld /var/spool/cron/
    drwx------. 2 root root 4096 Oct  4 14:37 /var/spool/cron/
    
    $ sudo ls -l /var/spool/cron/
    total 4
    -rw------- 1 root root  0 Sep 16 23:47 root
    -rw------- 1 saml root 42 Oct  4 14:37 saml
    
  3. SELinux

    cronjob 是否可以透過 SELinux 存取寫入您的 /home/XXX 目錄?

    一個快速測試是暫時停用 SELinux 強制,看看它是否可以解決您的問題。

    $ getenforce
    Disabled
    

    如果已啟用,請將其停用:

    $ sudo setenforce 0
    

答案2

strace crontab -e

解決了它...不知道如何...但它現在可以工作了..但我想做的就是檢查 crontabs 低級“操作”..

相關內容