
내 스크립트에 대한 라이센스 시스템이 있습니다. 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분마다 인쇄되는지 확인하세요.