사용자(SUSE LINUX Enterprise Server 9.4)로 새 cronjob을 추가했습니다.
# su - XXX
$ crontab -e
그리고 이것이 내가 추가한 것입니다:
* * * * * echo `date` >> /home/XXX/a.txt
하지만 a.txt는 생성되지 않습니다. 루트가 크론드를 다시 시작할 때만 생성됩니다.
큐:왜?
업데이트:
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의 낮은 수준 "작업"을 확인하는 것뿐입니다..