주기적으로 실행하고 싶은 테스트 스크립트가 있습니다. /etc/cron.d
이라는 디렉토리에 파일을 만들었 습니다 my_test.cron
.
#ls -l /etc/cron.d/my_test.cron
-rwxr-xr-x 1 root root 81 Sep 24 2020 my_test.cron
#cat /etc/cron.d/my_test.cron
00 02 * * * root /usr/bin/my_dir/test_wrapper.sh > /var/log/clamav.err 2>&1
cron 작업이 호출되지 않는 것을 볼 수 있습니다. 파일에 사용 가능한 로그가 없습니다 log.err
. 그러나 수동으로 실행하면 스크립트가 제대로 작동합니다. 래퍼 스크립트의 권한은 다음과 같습니다. ->
-rwxr-xr-x 1 root root 1.2K Sep 24 2020 /usr/bin/my_dir/test_wrapper.sh
Syslog를 추적하면 내 cron에 대한 정보만 볼 수 있습니다. ->
Jul 14 00:02:01 my-test-vm CRON[15891]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
내가 여기서 무엇을 놓치고 있는 걸까요?
답변1
/etc/cron.d
파일(및 디렉터리)은 /etc/cron.*
실행되기 위해 존재하며 파일이 아닙니다 crontab
.
- 디렉토리의 파일은
/etc/cron.*
실행될 파일이며crontab
파일이 아닙니다. - 의 파일은
/etc/cron.d
crontab 파일입니다.
대체 솔루션은 다음과 같습니다.
또는 /etc/crontab
편집
00 02 * * * root /usr/bin/my_dir/test_wrapper.sh > /var/log/clamav.err 2>&1
또는 루트로서 다음을 사용하여 crontab -e
다음 줄을 추가합니다.
00 02 * * * /usr/bin/my_dir/test_wrapper.sh > /var/log/clamav.err 2>&1