사용자에 대한 새 cronjob을 추가했습니다(SUSE LINUX Enterprise Server 9.4).
# su - XXX
$ crontab -e
내가 추가한 내용은 다음과 같습니다.
* * * * * echo `date` >> /home/XXX/a.txt
하지만 a.txt는 생성되지 않습니다. 루트가 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-3.0.1-920.18
루트 사용자에게 새 crontab을 추가해 보았습니다. 동일합니다. :D 새 루트 cronjob도 실행되지 않습니다.. :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
해결했습니다...어떻게 하는지는 모르겠지만...지금은 작동합니다..하지만 제가 하고 싶은 것은 crontab에서 낮은 수준의 "작업"을 확인하는 것뿐입니다..