본문 바로가기
리눅스

anacron

by 다움위키 2023. 12. 18.

anacron은 주기적으로 명령 스케줄링을 수행하는 컴퓨터 프로그램으로, 이는 전통적으로 cron에 의해 수행되지만, 시스템이 지속적으로 실행된다는 가정 없이 수행됩니다. 따라서, 그것은 하루 24시간 실행되지 않는 시스템에서 매일, 매주 및 매월 작업 (또는 n일의 주기를 갖는 모든 작업)의 실행을 제어하기 위해 사용될 수 있습니다. anacron은 원래 유닉스 운영 시스템에 대해 에서 Christian Schwarz에 의해 구상되고 구현되었습니다. 그것은 나중에 Itai Tzur에 의해 C로 다시 작성했습니다; 유지보수 책임자는 Sean 'Shaleh' Perry와 Pascal Hakim를 포함하고 있습니다. 그것은 Red Hat에서 유지 관리되는 cronie의 종속성이고, cronie에 대한 Red Hat 업데이트에는 마찬가지로 anacron에 대한 업데이트를 포함하고 있습니다.

Installation

대부분의 배포판에서 시스템 설치와 함께, 패키지가 설치됩니다.

어쨌든, 우분투 저장소에서 다음과 같이 설치할 수 있습니다:

  • sudo apt install anacron

Advantages

유닉스 시스템은 공통적으로 로그 회전, 사용하지 않는 파일 삭제, 검색 엔진에 대한 로컬 파일 인덱싱, 디스크 사용 보고서 보내기, 등과 같은 "집안 일"을 실행합니다. cron이라는 프로그램dl 이들 임무를 예약하기 위해 사용될 수 있습니다.

cron과 함께, 임무는 공통적으로 시스템이 유휴 상태일 것으로 예상될 때 실행되도록 예약됩니다. 만약 시스템이 작업을 실행해야 하는 시점에 시스템이 꺼져 있으면, 그것은 실행되지 않을 것입니다. Anacron은 다르고 임무를 다른 순간으로 이동하므로 그것들은 시스템이 켜져 있고 cron을 사용할 때 실행됩니다.

Disadvantages

오직 시스템 관리자가 anacron 임무를 구성할 수 있습니다. 대조적으로, cron은 관리자가 아닌 사용자에게 예약된 임무를 구성하도록 허용합니다. 만약 필요하다면, 관리자가 아닌 사용자는 at 유닉스 명령을 예약된 작업 (실행하는 것을 보장됨)을 요청하기 위해 사용될 수 있습니다. 시스템 시동에서, 이 명령은 자동으로 미래 날짜에 실행되도록 요청할 수 있으며, 따라서 실행이 보장된 정기적으로 예약된 임무의 모양을 제공합니다.

aacron은 하루에 한 번 (또는 매주 또는 매월처럼 덜 자주) 임무를 실행할 수 있습니다. 대조적으로, cron은 작업을 1분마다 실행되도록 허용합니다 (그러나 시스템이 다운되면 실행을 보장하지는 않습니다). 실제로, 이것은 보통 문제가 되지 않는데, 왜냐하면 특히 항상 실행되지 않는 시스템에서 (최소한) 하루에 한 번 이상 실행되도록 보장되어야 하는 임무는 드물기 때문입니다.

만약 시스템이 재부팅되거나 자정 이후에 시작되면, 일일 임무는 동기화된 방식 (순차적 순서)으로 사용자 지정 지연 후에 실행되므로, 오직 한 번에 하나의 anacron 작업을 실행합니다. 해당 임무가 완료되면, 다음 임무가 시작되고 이런 식으로 계속됩니다.

이 행위는 동시 (병렬) 임무를 허용하도록 재정의될 수 있지만, 작업을 수행하기 위해 사용자에 의해 필요한 시스템 자원을 소모할 수 있습니다. 대조적으로, cron은 오직 설정된 시간 집합에 매일 임무를 실행합니다 (예를 들어, 컴퓨터를 사용하지 않는 한밤중에).

fcronVixiecron과 anacron의 역할을 모두 수행하려고 시도하는 cron의 또 다른 구현입니다.

Troubleshootings

권한 문제(?) : run-parts: /etc/cron.daily/mysql-backup exited with return code 1 2021년 9월 크론 업데이트 후에, 문제없이 동작하던 파일에서 문제가 발생했습니다. 해당 파일은 권한 100이었고, 500으로 바꾼 후에 문제가 사라지는 듯이 보였지만, 제대로 동작하지 않습니다. 파일 이름에 끝에 ".sh"가 붙어 있어 문제가 있을 수 있어, "."을 포함하지 않도록 처리해 두었습니다. 시험은 sudo run-parts /etc/cron.daily/로 할 수 있지만, 여기서는 오류가 발생하지 않습니다.

crontab에 해당 스크립트를 실행해 보니, ambiguous redirect 오류가 발생했고, date의 형식 지정이 바뀌어서 생긴 문제입니다.

External links