리눅스에서 10 초마다 실행되는 크론 작업을 어떻게 예약 할 수 있습니까? 방법을 알고 있지만 약

나는 매분마다하는 방법을 알고 있지만 약 10 초마다 어떻게됩니까?



답변

10 초마다 작업을 예약 할 수는 없지만 매 분마다 작업이 실행되도록 예약하고 10 초 간격으로 루프에서 잠을 자고 있다고 가정합니다. 이것은 10 초 간격이 만료되기 전에 명령이 완료된 것으로 가정하거나 다음 명령이 실행될 때 겹치게됩니다. 이것은 불안한 해결책처럼 느껴지지만 스크립트의 주요 명령을 매우 짧게 실행할 수 있다면 작동합니다.

#!/bin/bash
i=0

while [ $i -lt 6 ]; do
  /run/your/command &
  sleep 10
  i=$(( i + 1 ))
done

답변

나는 지난주 비슷한 일을했다. 내 솔루션은 표준 cron 항목을 원하는 빈도로 곱하는 것이 었습니다. 내 crontab은 다음과 같습니다.

* * * * * /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 10; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 20; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 30; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 40; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 50; /usr/local/bin/php /var/www/myscript.php

디버깅을 위해 myscript.php의 결과를 확인하려면 추가하십시오.

&> /tmp/myscipt.log

위의 crontab의 각 줄에. 그런 다음 stderr 및 stdout이 로그 파일로 경로 재 지정됩니다.


답변

내가 사용하는 거라고 MONIT을 10 초 사이클 시간을 설정합니다. 이것은 cron 시스템 외부에서 이것을 관리하는 확실한 방법입니다.

15 초 간격으로 실행해야하는 특정 스크립트를 사용하여이 작업을 수행합니다.

zfs 풀의 증분 / 연속 백업을 수행하는 방법을 참조하십시오.


답변

Cron은 최소 1 분만 허용합니다. 당신은 이것을 시도 할 수 있습니다-

* * * * * ( sleep 10 ; /usr/bin/wget http://api.us/application/)

답변

예를 들어 5 초 미만으로 10 초 미만으로 가고 싶다면 다음과 같은 작은 스크립트로 작업자 루프를 만드는 것이 좋습니다.

#!/bin/bash

INTERVAL=5
while true; do

  echo "do something"

  # wait for next interval
  WAIT_UNTIL=$(($(date +%s) + $INTERVAL))
  while [ $(date +%s) -lt $WAIT_UNTIL ]; do
    sleep 1
  done

done

1 초 미만으로 이동해야하는 경우 날짜 명령에 마이크로 초를 추가하십시오.


답변

* * * * * script to run
* * * * * sleep 10; script to run
* * * * * sleep 20; script to run

여기 스크립트는 10 초 간격으로 실행할 수 있습니다 …