아치에서 5분마다 크론 작업 실행

아치에서 5분마다 크론 작업 실행

몇 가지 답변을 검색해 보았지만 혼란을 해소할 수 있는 방법이 없는 것 같습니다.

5분마다 실행하고 싶은 크론 작업이 있습니다.

*/5 * * * * cd /mnt/internal-storage/coindata && shell/command coins update

넣어볼까/etc/cron.daily폴더를 만들거나 새로 만드세요/etc/cron.분?

또한 이 폴더에 어떤 유형의 파일을 만들었습니까?

답변1

가장 좋은 해결책은 아마도 crontab에 한 줄을 추가하는 것입니다. crontab 파일에 액세스하는 방법은 cron 구현에 따라 다를 수 있으므로 공식 Arch 저장소에서 두 cron 구현에 대한 명령을 제공했습니다. 특정 크론 구현이 필요하지 않은 솔루션을 원한다면 다음과 같이 작성했습니다.또 다른 대답대신 systemd/Timers를 사용하세요.

crontab -e또는 EDITOR 환경 변수를 사용하는 변형(기본값은 vi)입니다. 다른 편집기를 사용하려면 다음과 같이 EDITOR 변수로 내보내십시오.

export EDITOR=vim

여기서 vim은 선택한 편집기로 대체됩니다.


cronie를 사용하여 crontab을 편집하십시오.

crontab -e

fcron을 사용하여 crontab을 편집합니다.

fcrontab -e

cron 명령을 파일에 추가하고 저장합니다.

*/5 * * * * cd /mnt/internal-storage/coindata && shell/command coins update

이 파일의 행 형식은 다음과 같습니다.

minute hour day_of_month month day_of_week command

cron이 실행되고 있지 않으면 해당 데몬을 시작하십시오.

가까운 사람들을 위해:systemctl start cronie.service

fcron의 경우:systemctl start fcron.service

재부팅 후에도 crontab의 명령이 계속 실행되도록 하려면 cron 데몬이 활성화되어 있는지 확인하십시오.

systemctl enable cronie.service또는systemctl enable fcron.service

답변2

Arch Linux에 내장된 타이밍 시스템은 다음과 같습니다.시스템/타이머. Arch Wiki에는 여러 가지 목록이 있습니다.cron 대체품으로 사용하는 것의 장단점. 또 다른 이점을 추가하고 싶습니다. cron 구현을 설치할 필요가 없습니다.

전반적으로 저는 단순화를 위해 cronjob을 사용하는 것을 권장하지만 이는 (이론적으로) 모든 Arch 설치에 관계없이 작동하는 솔루션입니다.

타이머 구현(TIMERNAME을 타이머 이름으로 대체):

타이머 파일 위치:/etc/systemd/system/TIMERNAME.timer


[Unit]
Description=Run TIMERNAME every five minutes

[Timer]
OnCalendar=*:0/15
Persistent=true     

[Install]
WantedBy=timers.target

타이머 서비스 파일 위치:/etc/systemd/system/TIMERNAME.service


[Unit]
Description=Run some commands - for use with TIMERNAME.service

[Service]
ExecStart=cd /mnt/internal-storage/coindata && shell/command coins update
# Alternatively could be used to run a script with the above commands in it.
# If your script is located at /usr/local/bin, change the above command to:
#    ExecStart:/usr/local/bin/SCRIPTNAME

[Install]
WantedBy=multi-user.target

먼저 다음을 실행합니다.

systemctl start TIMERNAME.timer

활성화(향후 재부팅 후에도 계속 작동하도록):

systemctl enable TIMERNAME.timer

중지 및 비활성화는 동일한 형식을 따릅니다.

관련 정보