웹사이트 검색

Cron 대 Anacron: Linux에서 Anacron을 사용하여 작업을 예약하는 방법


이 글에서는 cronanacron에 대해 설명하고 Linux에서 anacron을 설정하는 방법도 보여줍니다. 또한 이 두 가지 유틸리티를 비교해 보겠습니다.

주어진 시간이나 나중 시간에 작업을 예약하려면 'at' 또는 'batch' 명령을 사용할 수 있고 반복적으로 실행되도록 명령을 설정하려면 < Strong>cron 및 anacron 기능.

Cron – 시스템 백업, 업데이트 등과 같은 예약된 작업을 실행하는 데 사용되는 데몬입니다. 서버와 같이 연중무휴로 지속적으로 실행되는 시스템에서 예약된 작업을 실행하는 데 적합합니다.

명령/작업은 crontab 파일에 예약된 cron 작업으로 스크립트됩니다. 기본 시스템 crontab 파일은 /etc/crontab이지만 각 사용자는 사용자가 정의한 시간에 명령을 실행할 수 있는 자체 crontab 파일을 만들 수도 있습니다.

개인 crontab 파일을 만들려면 다음을 입력하면 됩니다.

crontab -e

Linux에서 Anacron을 설정하는 방법

Anacron은 일 단위로 정의된 빈도로 주기적으로 명령을 실행하는 데 사용됩니다. cron과 약간 다르게 작동합니다. 기계의 전원이 항상 켜져 있지는 않다고 가정합니다.

랩톱 및 데스크톱 컴퓨터와 같이 연중무휴로 실행되지 않는 컴퓨터에서 cron으로 일반적으로 실행되는 일일, 주간 및 월간 예약 작업을 실행하는 데 적합합니다.

매일 자정, 아마도 잠들어 있을 때 cron을 사용하여 실행하도록 예약된 작업(예: 백업 스크립트)이 있고 그 시간에 데스크톱/노트북이 꺼져 있다고 가정합니다. 백업 스크립트가 실행되지 않습니다.

그러나 anacron을 사용하면 다음에 데스크탑/노트북의 전원을 다시 켤 때 백업 스크립트가 실행될 것임을 확신할 수 있습니다.

Anacron이 Linux에서 작동하는 방식

anacron 작업은 /etc/anacrontab에 나열되어 있으며 아래 형식을 사용하여 작업을 예약할 수 있습니다(anacrontab 파일 내의 주석은 #으로 시작해야 함).

period   delay   job-identifier   command

위 형식에서:

  • 기간 – 일, 주 또는 월에 한 번 @daily, @weekly 또는 @monthly로 지정되는 작업 실행 빈도입니다. 숫자를 사용할 수도 있습니다: 1 - 매일, 7 - 매주, 30 - 매월 및 N - 일 수.
  • 지연 – 작업을 실행하기 전에 기다려야 하는 시간(분)입니다.
  • 작업 ID – 로그 파일에 기록된 작업의 고유한 이름입니다.

예제 파일을 보려면 다음을 입력하십시오.

ls -l /var/spool/anacron/

total 12
-rw------- 1 root root 9 Jun  1 10:25 cron.daily
-rw------- 1 root root 9 May 27 11:01 cron.monthly
-rw------- 1 root root 9 May 30 10:28 cron.weekly
  • 명령 – 실행할 명령 또는 셸 스크립트입니다.
실제로 일어나는 일은 다음과 같습니다.
  • Anacron은 기간 필드에 지정된 기간 내에 작업이 실행되었는지 확인합니다. 그렇지 않은 경우 지연 필드에 지정된 시간(분) 동안 대기한 후 명령 필드에 지정된 명령을 실행합니다.
  • 작업이 실행되면 작업 ID(타임스탬프 파일 이름) 필드에 지정된 이름을 사용하여 /var/spool/anacron 디렉터리의 타임스탬프 파일에 날짜를 기록합니다.

이제 예를 살펴보겠습니다. 그러면 매일 /home/aaronkilik/bin/backup.sh 스크립트가 실행됩니다.

@daily    10    example.daily   /bin/bash /home/aaronkilik/bin/backup.sh

backup.sh 작업이 실행될 것으로 예상될 때 머신이 꺼져 있으면 anacron은 7일을 더 기다리지 않고 머신의 전원을 켠 후 10분 후에 해당 작업을 실행합니다.

anacrontab 파일에는 이해해야 할 두 가지 중요한 변수가 있습니다.

  • START_HOURS_RANGE – 작업이 시작될 시간 범위를 설정합니다(즉, 다음 시간에만 작업 실행).
  • RANDOM_DELAY - 작업의 사용자 정의 지연에 추가되는 최대 무작위 지연을 정의합니다(기본적으로 45).

이것이 anacrontab 파일의 모습입니다.

/etc/anacrontab: configuration file for anacron

See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root

These replace cron's entries
1       5       cron.daily      run-parts --report /etc/cron.daily
7       10      cron.weekly     run-parts --report /etc/cron.weekly
@monthly        15      cron.monthly    run-parts --report /etc/cron.monthly

@daily    10    example.daily   /bin/bash /home/aaronkilik/bin/backup.sh                                                                      

다음은 cronanacron을 비교하여 언제 둘 중 하나를 사용해야 하는지 이해하는 데 도움이 됩니다.

It’s a daemon

데몬이 아니네요

Appropriate for server machines

데스크탑/노트북 컴퓨터에 적합

Enables you to run scheduled jobs every minute

매일 예약된 작업만 실행할 수 있습니다.

Doesn’t executed a scheduled job when the machine if off

예약된 작업이 예정되어 있을 때 머신이 꺼진 경우 다음에 머신의 전원을 켤 때 예약된 작업이 실행됩니다.

Can be used by both normal users and root

달리 사용하지 않는 한 루트에서만 사용할 수 있습니다(특정 구성을 가진 일반 사용자의 경우 활성화됨).

cronanacron의 주요 차이점은 anacron이 의도된 동안 지속적으로 실행되는 시스템에서 cron이 효과적으로 작동한다는 것입니다. 하루 또는 일주일 안에 전원이 꺼지는 기계의 경우.

다른 방법을 알고 있다면 아래 의견 양식을 사용하여 공유해 주세요.