그래서 저는 매우 구체적인 방식으로 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