Anacron 란
Anacron은 시스템 작업 스케줄링을 관리하는 도구 중 하나입니다. Anacron은 주기적으로 실행되어 지정된 작업을 예약하고 실행하며, 특히 시스템 부팅 시 놓친 작업을 처리하는 데 사용됩니다. Anacron은 주로 로그 백업, 시스템 정기적인 유지 관리 작업, 데이터베이스 정리, 백업 등과 같은 일상적인 시스템 작업을 관리하는 데 유용합니다.
Anacron은 cron이라고 불리는 다른 시스템 작업 스케줄러와 유사하지만, 주요 차이점은 다음과 같습니다.
- 일정 기간 내에 실행되지 않은 작업 처리: Anacron은 시스템 부팅 시 또는 지정된 시간 간격으로 작업을 실행하므로, 시스템이 꺼져 있거나 놓친 작업이 있더라도 처리할 수 있습니다.
- 작업을 사용자별로 관리하지 않음: Anacron은 전역적으로 시스템 작업을 관리하므로 모든 사용자에게 적용됩니다. 그러나 각 작업은 특정 사용자의 작업으로 실행될 수 있습니다.
- cron과 비교하여 덜 정교함: Anacron은 작업을 단순한 주기 또는 일정으로 실행하는 데 사용되므로, cron과 비교하면 덜 정교한 작업 스케줄링에 적합합니다.
CentOS 7에서 Anacron 설정은 /etc/anacrontab 파일에 저장됩니다. 이 파일을 수정하여 원하는 작업을 추가하고 구성할 수 있습니다.
요약하면, Anacron은 CentOS 7 시스템에서 시스템 작업을 예약하고 주기적으로 실행하는 간단한 도구입니다.
Anacron 패키지 설치
sudo yum install -y cronie-anacron
Anacron 설정 파일 확인
Anacron의 설정 파일은 /etc/anacrontab에 저장됩니다. 이 파일을 편집하여 각 작업을 구성하고 예약할 수 있습니다. 일반적으로 루트 권한이 필요하므로 sudo를 사용하여 편집할 수 있습니다.
cat /etc/anacrontab
$ cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
Anacron 작업 추가
Anacron 설정 파일에 작업을 추가하는 형식은 다음과 같습니다.
# 주기적으로 실행할 작업 추가
# 주기 지연 작업명 명령
1 5 example /usr/bin/command-to-run
- 주기: 작업을 얼마나 자주 실행할 것인지를 나타냅니다. 예를 들어, 매일 실행하려면 1을 사용하고, 매주 실행하려면 7을 사용합니다.
- 지연: 작업을 시작하기 전에 대기할 시간(분)을 나타냅니다.
- 작업명: 작업에 대한 설명으로 임의로 설정할 수 있습니다.
- 명령: 실행할 명령 또는 스크립트를 지정합니다. 예를 들어, 매일 자정에 /usr/local/bin/daily_backup_script.sh 스크립트를 실행하려면 다음과 같이 설정할 수 있습니다.
1 0 daily_backup /usr/local/bin/daily_backup_script.sh
Anacron 실행
Anacron은 주로 시스템 부팅 시에 실행되며, 설정된 주기에 따라 작업을 실행합니다. 부팅 시 자동으로 실행되므로 추가 구성 없이도 작업이 시작됩니다.
Anacron 로깅
Anacron은 실행된 작업과 관련된 로그를 생성합니다. 이 로그는 일반적으로 /var/spool/anacron/ 디렉터리에 저장됩니다.
- anacron 마지막 작업 실행일 기록 파일(job-identifier)
ls -l /var/spool/anacron/*
$ ls -l /var/spool/anacron/*
-rw-------. 1 root root 9 8월 18 03:50 /var/spool/anacron/cron.daily
-rw-------. 1 root root 9 8월 4 00:49 /var/spool/anacron/cron.monthly
-rw-------. 1 root root 9 8월 18 03:06 /var/spool/anacron/cron.weekly
예제: Anacron을 사용하여 로그 파일 회전
다음은 Anacron을 사용하여 로그 파일을 주기적으로 회전하는 예시입니다. /etc/anacrontab 파일을 열고 다음과 같이 설정합니다.
1 5 rotate_logs /usr/sbin/logrotate /etc/logrotate.conf
/etc/cron.hourly/0anacron 파일은 CentOS와 같은 많은 Linux 시스템에서 Anacron 작업을 주기적으로 실행하기 위한 스크립트입니다. 이 스크립트는 시간마다 실행되며, Anacron을 통해 예약된 작업이 있는지 확인하고 실행합니다.
cat /etc/cron.hourly/0anacron
$ cat /etc/cron.hourly/0anacron
#!/bin/sh
# Check whether 0anacron was run today already
if test -r /var/spool/anacron/cron.daily; then
day=`cat /var/spool/anacron/cron.daily`
fi
if [ `date +%Y%m%d` = "$day" ]; then
exit 0;
fi
# Do not run jobs when on battery power
if test -x /usr/bin/on_ac_power; then
/usr/bin/on_ac_power >/dev/null 2>&1
if test $? -eq 1; then
exit 0
fi
fi
# 시스템 부팅 시 놓친 작업을 처리하는 Anacron 실행
/usr/sbin/anacron -s
이 스크립트는 시스템 부팅 후 또는 시간별로 실행되며 /usr/sbin/anacron -s 명령을 실행하여 Anacron 작업을 실행합니다. -s 옵션은 Anacron을 시동할 때 무음 모드로 실행하도록 지시합니다. 이렇게 하면 사용자에게 출력되는 메시지가 최소화되어 시스템 로그에만 기록됩니다.
즉, /etc/cron.hourly/0anacron 스크립트를 통해 시간마다 Anacron이 실행되어 예약된 작업을 처리하고 놓치지 않도록 합니다. Anacron은 시스템 부팅 후, 시간이 지남에 따라 작업을 실행하며, /etc/anacrontab 파일에 정의된 주기에 따라 작업을 수행합니다.
참고URL
- Red Hat Training : 24.2. Anacron을 사용하여 반복된 비동기 작업 예약
'리눅스' 카테고리의 다른 글
[리눅스] SaltStack Install (0) | 2017.10.17 |
---|---|
리눅스에서 2TB 이상 디스크를 사용하기(GPT 파티션 방식 사용) (0) | 2017.09.26 |
KVM에서 스냅샷 생성, 복원 및 삭제하기 (0) | 2017.08.17 |
CentOS 7에서 RabbitMQ를 설치하는 방법 (0) | 2017.08.16 |
[리눅스] centos7 svn 설치 및 설정 (0) | 2017.08.08 |