cron 작업을 /etc/cron.hourly 폴더에 배치하여 실행하도록 구성할 수 없습니다.
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
cron.hourly 아래의 파일은 다음과 같습니다.
lrwxrwxrwx 1 root root 40 2010-07-26 14:52 check -> /usr/local/xxxx/check-interface.bash
파일 권한:
-rwxr-xr-x 1 root root 1.6K 2010-09-13 11:22 /usr/local/xxxx/check-interface.bash
var/log/cron 로그 파일에 보고된 오류가 없는 것 같습니다. 대본에 대한 언급은 없었다. :(
답변1
문제를 격리하려면 /usr/local/xxxx/check-interface.bash를 /etc/cron.hourly/check로 이동하고 실행되는지 확인하세요.
스크립트가 실행되는 경우 소유권/권한 또는 cron이 /usr/local/xxxx/*에서 스크립트를 실행하지 못하게 하는 관련 문제로 인해 문제가 발생합니다.
스크립트가 실행되지 않으면 스크립트 자체에 문제가 있을 가능성이 높습니다.
또 다른 온전성 검사로 내용을 /usr/local/xxxx/check-interface.bash
다음과 같이 매우 간단한 것으로 바꾸십시오.
date > /tmp/check-interfaces.log 2>&1
그런 다음 /tmp/check-interfaces.log가 실제로 cronjob에 의해 채워졌는지 확인하세요. 작동한다면 원본 스크립트에 문제가 있는 것입니다.
답변2
확인하고 싶을 뿐이야샤둘앞서 언급했듯이 문제는 기본적으로 cron에서 사용하는 "run-parts" 응용 프로그램이 _
ASCII 문자와 -
. 공식 매뉴얼 페이지에서:
If neither the --lsbsysinit option nor the --regex option is given then the names must consist entirely of ASCII upper- and lower-case letters, ASCII digits,
ASCII underscores, and ASCII minus-hyphens.