cronjob: 시작/깨우기 시 script_A를 실행한 다음 5분마다, 그 사이에 4분 동안 script_B를 실행합니다(따라서 모듈로 5분을 *아님*).

cronjob: 시작/깨우기 시 script_A를 실행한 다음 5분마다, 그 사이에 4분 동안 script_B를 실행합니다(따라서 모듈로 5분을 *아님*).

그래서 저는 매우 구체적인 방식으로 cronjob을 설정하고 싶습니다.

  • 시작/깨우기 시 script_A 실행

  • 그런 다음 시작/깨우기를 기준으로 5분마다(따라서아니요모듈로 5시계 분)

  • 4분마다 script_B 실행~ 사이(즉, script_A가 실행되는 시간(분)아니요달리기)

아직 경험이 없어서
어떻게 해야할지 조언을 구합니다시작먼저 더 깊이 파고들어 보세요.


cron그 자체(혹은 anacron내가 사용하고 있는 기술?)는 다소 제한적인 것 같고,
그것이 할 수 있는 최선은 분명히
*/5 * * * * /home/username/script_A.sh


fcron더 강력하고 유연해 보이며 몇 가지 구문이 포함되어 있습니다
@ 5 /home/username/script_A.sh
.시작/깨우기, 모듈로 시계 분뿐만 아니라" [... 비록 stackexchange가 그렇지 않다는 것을 알았지만가지다 fcron태그가 사용 가능하므로 이는 아마도 좋은 징조가 아닐 것입니다...]


4분마다 "script_B"를 처리하는 방법을 아직도 모릅니다.~ 사이그러나 script_A".


시스템 타이머는 어떤 모습인가요?
에서매우얼핏 보면 약간 상용구의 장황함처럼 보이지만...?
하지만 아마도 그들은하다내가 찾고 있는 힘/유연성을 갖고 있나요...?


제가 조사해야 할 다른 사항이 있나요?



(
저는 opensuse 회전초를 사용하고 있으므로
예를 들어하다어서 가세요 fcron
. 하나쯤 걸릴 거예요작은내가 가지고 있는지 확인하려고 노력 중진짜설치됨적절하게
왜냐면 수동으로 해야 하기 때문이죠.
(
즉, 나는했다이미 github에서 설치했지만
실제로 얻으려면 추적해야 할 까다로운 부분이 최소한 한두 군데 있을 것이라고 확신합니다.바르게내 시스템에 통합되었습니다.
)

난 무엇인가?하다내 패키지 관리자 저장소에는 다음이 있습니다.
$ zypper info cron cronie cronie-anacron kcron
#=>

 Loading repository data...  
 Reading installed packages...


 Information for package cron:  
 -----------------------------  
 Repository     : Main Repository (OSS)  
 Name           : cron  
 Version        : 4.2-91.3  
 Arch           : x86_64  
 Vendor         : openSUSE  
 Installed Size : 181 B  
 Installed      : Yes (automatically)  
 Status         : up-to-date  
 Source package : cronie-1.6.1-91.3.src  
 Upstream URL   : https://github.com/cronie-crond/cronie  
 Summary        : Auxiliary package  
 Description    :  
     Auxiliary package, needed for proper update from vixie-cron 4.1 to cronie 1.4.4


 Information for package cronie:  
 -------------------------------  
 Repository     : Main Repository (OSS)  
 Name           : cronie  
 Version        : 1.6.1-91.3  
 Arch           : x86_64  
 Vendor         : openSUSE  
 Installed Size : 310.2 KiB  
 Installed      : Yes (automatically)  
 Status         : up-to-date  
 Source package : cronie-1.6.1-91.3.src  
 Upstream URL   : https://github.com/cronie-crond/cronie  
 Summary        : Cron Daemon  
 Description    :  
     cron automatically starts programs at specific times. Add new entries  
     with "crontab -e". (See "man 5 crontab" and "man 1 crontab" for  
     documentation.)

     Under /etc, find the directories cron.hourly, cron.daily, cron.weekly,  
     and cron.monthly.  Scripts and programs that are located there are  
     started automatically.


 Information for package cronie-anacron:  
 ---------------------------------------  
 Repository     : Main Repository (OSS)  
 Name           : cronie-anacron  
 Version        : 1.6.1-91.3  
 Arch           : x86_64  
 Vendor         : openSUSE  
 Installed Size : 43.6 KiB  
 Installed      : Yes  
 Status         : up-to-date  
 Source package : cronie-1.6.1-91.3.src  
 Upstream URL   : https://github.com/cronie-crond/cronie  
 Summary        : Utility for running regular jobs  
 Description    :  
     Anacron becames part of cronie. Anacron is used only for running regular jobs.  
     The default settings execute regular jobs by anacron, however this could be  
     overloaded in settings.


 Information for package kcron:  
 ------------------------------  
 Repository     : Main Repository (OSS)  
 Name           : kcron  
 Version        : 23.04.3-1.1  
 Arch           : x86_64  
 Vendor         : openSUSE  
 Installed Size : 410.8 KiB  
 Installed      : No  
 Status         : not installed  
 Source package : kcron-23.04.3-1.1.src  
 Upstream URL   : https://www.kde.org  
 Summary        : Cron job configuration tool  
 Description    :  
     KCron allows you to change your cron jobs setup.  

(그리고 가능한 모든 것https://software.opensuse.org/search?baseproject=ALL&q=cron무엇을 검색해야 할지 모르겠습니다)
)

답변1

특이한 요청입니다. 그러나 "5분마다"와 "1분마다"라는 두 개의 cron 표현식을 검색하는 대신 매분마다 스크립트를 실행하는 cron 항목을 생성하면 해당 스크립트는 5분 스크립트를 위한 시간인지 아니면 다른 시간인지를 결정합니다. 그것은 다음과 같습니다:

* * * * * /home/username/script-manager.sh

#!/usr/bin/env sh
minute=$(date +%M)
if [ 0 = $(( ${minute#0} % 5 )) ]; then
  /home/username/modulo-5 clock-minutes
else
  /home/username/script_B
fi

시작을 기준으로 5분 간격 내에 있어야 한다고 주장하는 경우 다음과 같은 것을 추가할 수 있습니다.

minute=$(date +%M)
echo "$(( ${minute#0} % 5 ))" > /run/boot-5-minute-offset

시작 시 실행하는 스크립트에 적용하고 결정 스크립트를 조정합니다.if [ "$(cat /run/boot-5-minute-offset)" = $(( ${minute#0} % 5 )) ]; then

관련 정보