15 분마다 실행해야하는 몇 가지 크론 스크립트가 있다고 가정합니다. 나는 그들을 실행하도록 설정할 수 */15 * * * *
있지만 : 그들은 모두 동시에 실행됩니다. 서버가 몇 분 동안 유휴 상태에 있고 갑자기 수십 개의 스크립트를 동시에 실행하려고 시도하는 것은 어리석은 것처럼 보입니다.
1, 16, 31, 46 분에 하나의 스크립트를 실행하고 2, 17, 32, 47에 다른 스크립트를 실행할 수있는 방법이 있습니까?
다시 말해, 각 스크립트가 15 분마다 실행되기를 원하지만, 분기 시간 표시에서 특별히 실행되는 것은 중요하지 않습니다.
답변
당신은 이것을 필요 이상으로 어렵게 만들고 있습니다. 세미콜론으로 구분하여 모두 같은 줄에 넣으십시오.
*/15 * * * * command1 ; command 2 ; command 3
실행 command1
하고 완료 될 때까지 기다렸다가 실행 하고 완료 될 command2
때까지 기다립니다.
답변
cron 작업을 다음과 같이 보이게 6-59/15 * * * *
하면 시간당 6, 21, 36 및 51 분에 실행됩니다.
일부 버전의 cron에서는 작동하지 않을 수 있습니다.
답변
모든 스크립트를 디렉토리에 넣고 /etc/cron.15m
cron을 실행할 수 있습니다.
*/15 * * * * run-parts /etc/cron.15m
run-parts
명령 이 있다고 가정합니다 . 최소한 모든 데비안 기반 시스템에 존재합니다. 이름 지정된 디렉토리에서 모든 실행 프로그램을 한 번에 하나씩 순서대로 실행합니다.
이 방법의 단점은 스크립트 중 하나가 중단되면 나머지는 대기하고 실행되지 않는다는 것입니다. 이들 모두의 실행 시간이 15 분을 초과하면 작업이 다시 실행되기 시작하여 많은 프로세스가 쌓일 수 있습니다.
답변
이 작업을 수행하는 가장 간단한 방법은 원하는 때 실행할 명령을 수동으로 설정하는 것입니다.
0,15,30,45 * * * * command0
1,16,31,46 * * * * command1
2,17,32,47 * * * * command2
...
14,29,44,59 * * * * command14
또는 적절한 크론 탭 항목을 자동으로 생성하는 스크립트를 작성할 수 있습니다 (오타를 피함).
일부 버전의 cron (아마도 사용중인 버전 포함)은 확장 구문을 허용합니다.
0-59/15 * * * * command0
1-59/15 * * * * command1
1-59/15 * * * * command2
...
14-59/15 * * * * command14
답변
Cron은 실제로하려는 일을 잘하지 않습니다. 기본적으로 15 분 동안 잠자고 명령을 실행 한 다음 반복되는 데몬 역할을하는 스크립트 작성을 고려 했습니까?
답변
많은 배포판에는 /etc/cron.d/cronhourly가 있으며,이를 위해 모든 스크립트가 매시간 실행됩니다. 순차 번호, lik 01scriptA 02scriptB로 주문을 시작하여 주문을 지정할 수도 있습니다. Smoothwall의 Linux distro base에서 호출 할 때 이미 “cronhourlybyfour”를 제조해야하는 cron 지식이 있으면 간단합니다. 🙂
경고의 말씀 : 이것은 이전에 제안 된대로 런 파트를 사용하며 런 파트는로 된 스크립트를 좋아하지 않습니다. 이름에 “deletehomefolders.sh”라고 부르지 말고 “01deletehomefolders”라고 부르고 올바른 #으로 시작하십시오! 스크립트를 해석하려는 모든 것에 대한 라인.