crontab에서 와일드카드 문자(*)는 사용할 수 있지만 숫자는 사용할 수 없는 이유는 무엇입니까?

crontab에서 와일드카드 문자(*)는 사용할 수 있지만 숫자는 사용할 수 없는 이유는 무엇입니까?

매일 10시 25분(정확한 시간은 중요하지 않음)에 Raspberry Pi(Raspbian Jessie 실행)에서 스크립트를 실행하고 싶습니다.

이 줄의 경우 25 10 * * * /home/pi/test.sh 결과, 출력 및 활동 로그가 제공되지 않습니다.

나는 그것을 시도했고 * * * * * /home/pi/test.sh기적이 일어났습니다! 잘 작동하고 CMD (/home/pi/test.sh)cron 로그에서 생성되며 필요한 출력 파일을 생성합니다.

테스트 목적으로 사용하는 스크립트:

#!/bin/bash
echo `date` > /home/pi/test.txt

cron이 스크립트를 실행하지 않는 이유를 아는 사람이 있습니까?

답변1

단순화하기 위해 작업을 다음과 같이 나열했습니다.

25 10 * * * date > /home/pi/test.txt

행사는 오전 10시 25분에 진행됩니다. 현재 실행되고 있지 않은 경우 시간대를 확인 /etc/default/cron하고 필요하면 변경하세요. 변경 후에는 서비스를 다시 시작해야 합니다 service cron restart.

답변2

crontab 맨페이지에서

분, 시, 월 필드가 현재 시간과 일치하고 두 날짜 필드(일 또는 요일) 중 하나 이상이 현재 시간과 일치할 때 cron(8)에 의해 실행되는 명령

다음 날짜 필드 중 하나가 있어야 합니다. 매일 10:25에 실행하려면 다음을 사용하세요.

25 10 * * 0-6 /home/pi/test.sh

편집하다:all *은 매분마다 실행되도록 crontab을 표시하므로 이는 실제로 올바르지 않습니다. 시스템 타이밍 문제인 것으로 확인되었습니다. 시스템 시간을 다시 확인하세요. cron 데몬은 UTC 외부에서 실행됩니다. 모든 필드를 *로 설정하면 스크립트가 작동하므로 실제 논리가 작동하고 있음을 알 수 있습니다.

관련 정보