cron에서 $ RANDOM에 이상한 문제가 있습니다. cronjob이 실행 된 후 무작위로 몇 분 동안 명령을 실행하고 싶습니다.
이 예제는 터미널에서 직접 작동하며 명령을 최대 30 초 지연시킵니다 (명령을 원하는대로 바꾸십시오. 실제로는 / dev / ttyUSB0에 대한 에코입니다).
sleep `expr $RANDOM \% 30` ; command
동일한 행이 crontab에 배치되면 명령은 항상 지연없이 즉시 실행됩니다.
* * * * * sleep `expr $RANDOM \% 30` ; command
$ RANDOM없이 표현식을 사용하면 정상적으로 작동합니다. 이는 15 초 지연됩니다.
* * * * * sleep `expr 10 + 5` ; command
즉, $ RANDOM이 크론에서 작동하지 않는 것 같습니다.
그러나 단순히 $ RANDOM 자체가 0으로 평가되기 때문이 아니라 10의 지연이 발생하기 때문입니다.
* * * * * sleep `expr $RANDOM \% 30 + 10` ; command
나는 또한 && instread of; 그러나 그것은 도움이되지 않습니다. 실제로 명령이 전혀 실행되지 않습니다!
물론 crontab에서 호출 된 스크립트에 지연을 배치 할 수는 있지만 문제를 설명하지 못하고 배우지 못합니다.
차이가 있다면 데비안 레니입니다.
/bin/sh
것은 실제 쉘이 아니며 데비안에서 sysadmin의 선호하는 쉘 (일반적으로 bash 또는 dash)에 대한 심볼릭 링크였습니다.