매일 특정 시간 사이에 X분마다 Python 스크립트를 예약합니다.

매일 특정 시간 사이에 X분마다 Python 스크립트를 예약합니다.

내 RaspberryPi에 다음과 같이 실행하고 싶은 Python 스크립트가 있습니다.

  • 평일 오후 4시 30분부터 자정까지 30분 간격으로 출발
  • 주말에는 오전 8시 이후부터 자정까지 60분 간격으로 운행됩니다.

Cron을 사용하여 매일 일정을 잡는 방법을 알고 있습니다.

30 16 * * 1-5 /mnt/myHDD/myscript.py

하지만 X분마다 실행되도록 하는 방법을 모르겠습니다.~까지Y 시간.

30분마다 달리고 싶은데, 이게 맞나요? 그런데 16시 30분부터 다음날 02시까지 매시간마다 실행하려면 어떻게 해야 할까요?

1-59/30 * * 1-5 /mnt/myHdd/myscript.py

편집: 죄송합니다. 정확히 30분마다일 필요는 없습니다. 스크립트는 내 휴대폰에서 rpi로 사진을 다운로드하고 집에서 근무하는 동안 자주 실행되기를 원합니다(예: 1630년 이후). /1700 ), 그리고 주말에는 일반 "깨어 있는 시간"의 매시간.

답변1

내 좀 봐주세요편집하다이 답변의 끝에서.

  1. 이 답변은 첫 번째 요구 사항에 "가까움"입니다.
*/30 16-23,0 * * 1-5

번역하다:“At every 30th minute past every hour from 16 through 23 and 0 on every day-of-week from Monday through Friday.”

첫 번째 답변은 30분마다 실행되지 않기 때문에 누락되었습니다. sleep코드에 다음을 추가하여 이 문제를 해결할 수도 있습니다 .

time.sleep( 1800 )
  1. 이 답변은 첫 번째 요구 사항에 "가까움"입니다.
0,*/30 16-23,0 * * 1-5

번역하다:“At minute 0 and every 30th minute past every hour from 16 through 23 and 0 on every day-of-week from Monday through Friday.”

두 번째 답변은 시작하기 30분 전인 16:00에 실행되기 때문에 누락되었습니다. 그것이 중요하지 않다면, 이것이 당신이 말하는 것과 "가까울" 수도 있습니다. 정말 중요하고 17:00까지 기다릴 수 있는 경우 일정을 간단히 변경하면 문제가 해결됩니다.

0,*/30 17-23,0 * * 1-5
  1. 두 번째 요청에 대한 답변은 다음과 같습니다.
0 8-23,0 * * 6-7

편집 : 정신적 장애가 있습니다. 갑자기 그런 사람이 있다는 생각이 들었어요정밀한귀하의 질문에 대답하십시오. crontab2개가 아닌 3개의 항목이 있습니다 .

0,*/30 17-23,0 * * 1-5 /mnt/myHDD/myscript.py
30 16 * * 1-5 /mnt/myHDD/myscript.py
0 8-23,0 * * 6-7 /mnt/myHDD/myscript.py

답변2

두 개의 크론 작업을 설정하겠습니다.

# Mon-Fri every "half hour" from 16:30 until 23:30 and also at 12:30am and 12:59am
30,59 0,16-23 * * 1-5 /mnt/myHDD/myscript.py

# Weekends, every hour from 8am until 11pm
0 8-23 * * 0,6 /mnt/myHDD/myscript.py

여기서 가장 좋은 근사치는 평일 작업에서 30분과 59분을 사용했기 때문에 16:00에 실행되지 않는다는 것입니다. 따라서 주당 작업 간격은 29분과 31분입니다. 문제가 있으면 별도로저것두 가지를 입력하세요:

# Mon-Fri at 16:30
30 16 * * 1-5 /mnt/myHDD/myscript.py

# Mon-Fri every half hour from 17:00 until 23:30 and also at midnight and 12:30am
0,30 0,17-23 * * 1-5 /mnt/myHDD/myscript.py

분을 다른 최소 시간과 30과거 또는 30과거와 59과거로 하드코딩했지만 경쟁 작업이 있는 경우 원하는 간격(5와 35 등)을 선택할 수 있습니다.

월요일부터 금요일까지 입장 시간은 자정이며 오후 12시 30분입니다. 0시간 필드를 삭제하면 마지막 운행 시간은 오후 11시 30분입니다. 다시 말하지만, 이것이 문제라면 항목을 분할하여 자정에 실행되도록 하십시오.

관련 정보