5분마다 명령 실행

5분마다 명령 실행

내 스크립트에 대한 라이센스 시스템이 있습니다. 5분마다 라이센스가 있는지 확인하고 싶습니다.

licensechecker.sh나는 이와 같이 crontab에 my를 추가했습니다 .

*/5 * * * * sh /path/to/file/licensechecker.sh

하지만 작동하지 않는 것 같습니다. 나는 그것을 다음과 같이 테스트했습니다.

*/1 * * * * reboot

하지만 내 VPS가 재부팅되지 않았습니다.

로그를 확인했습니다.

Sep 3 15:42:01 eyup CRON[23368]: (root) CMD (reboot) 
Sep 3 15:42:01 eyup CRON[23366]: (CRON) info (No MTA installed, discarding output) 
Sep 3 15:43:01 eyup CRON[23675]: (root) CMD (reboot) 
Sep 3 15:43:01 eyup CRON[23674]: (CRON) info (No MTA installed, discarding output) 
Sep 3 15:44:01 eyup CRON[24023]: (root) CMD (reboot) 
Sep 3 15:44:01 eyup CRON[24022]: (CRON) info (No MTA installed, discarding output) 
Sep 3 15:45:01 eyup CRON[24336]: (root) CMD (reboot)

답변1

Cron은 사용자의 PATH를 사용하지 않습니다.자체적으로 하드코딩된 $PATH변수가 있습니다.이는 으로 설정됩니다 /usr/bin:/bin. 따라서 두 디렉터리 중 하나에 저장된 명령만 이름으로 실행할 수 있습니다. 다른 모든 경우에는 실행 파일의 전체 경로가 필요합니다. 명령 reboot이 에 있으므로 /sbin다음 줄이 필요합니다.

*/1 * * * * /sbin/reboot

그러나 이것은 실제로 좋은 테스트 방법이 아닙니다. 컴퓨터가 1분마다 재부팅되기 때문에 일단 작동하면 이 줄을 제거하는 데 많은 어려움을 겪게 되기 때문입니다. 대신 다음과 같은 안전한 명령을 사용하여 테스트할 수 있습니다.

*/1 * * * * /bin/date > /tmp/date.log

그런 다음 파일이 /tmp/date.log생성되고 날짜가 1분마다 인쇄되는지 확인하세요.

관련 정보