我为用户添加了一个新的 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
值得尝试的事情
您能否确认该
crond
服务正在运行:$ sudo service --status-all |& grep crond crond (pid 1673) is running...
确认 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
SELinux
cronjob 是否可以通过 SELinux 访问写入您的 /home/XXX 目录?
一个快速测试是暂时禁用 SELinux 强制,看看它是否可以解决您的问题。
$ getenforce Disabled
如果已启用,请将其禁用:
$ sudo setenforce 0
答案2
strace crontab -e
解决了它...不知道如何...但它现在可以工作了..但我想做的就是检查 crontabs 低级“操作”..