Tutoriel Linux

Linux 환경에서 Anacron을 사용하여 컴퓨터 전원이 꺼진 후 작업을 재개하는 방법

Débutant2 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

새벽 2시에 백업을 예약했는데, 그 시간에 노트북이 꺼져 있습니다. 일반적인 cron 작업을 사용하면 실행이 취소됩니다. 아나크론 이 특정 사례에 대한 해결책은 다음과 같습니다. 해당 기간이 만료되었음을 감지하는 즉시 다음 시작 시에 작업을 시작합니다.

저는 지연이 허용되는 일일, 주간 또는 월간 작업에만 이 기능을 사용합니다. 특정 시간에 실행하거나 10분마다 실행하거나 부서별 고급 모니터링이 필요한 경우에는 cron 및 systemd 타이머가 더 적합합니다.

Tux는 컴퓨터를 재시작하고 Anacron을 사용하여 예약된 백업을 완료합니다.
Anacron은 타임아웃 기간이 만료된 후 다음 시작 시 지연된 작업을 실행합니다.

cron, anacron, systemd 타이머 중에서 선택하기

선택은 주로 요구되는 정확도와 기계의 시동 시간에 따라 달라집니다.

  • 아나크론 며칠에 걸쳐 업무를 처리하고 휴식 후 일일, 주간 또는 월간 업무를 따라잡습니다.
  • 에이 시스템 타이머 보다 정확한 일정을 제공합니다 지속성=true서비스와 직접적으로 관련된 종속성 및 로그.

워크스테이션이나 상시 가동되지 않는 소규모 서버에서는 이 정도면 충분한 경우가 많습니다. systemd로 이미 관리되는 서버의 경우, 다음 가이드를 참조하십시오. 시스템 타이머 새로운 작업에 더욱 유연한 솔루션을 제공합니다.

Anacron을 설치하고 기존 구성을 읽어오세요.

데비안 또는 우분투 시스템에서는 패키지를 설치한 다음 사용 가능한 버전을 확인하십시오.

sudo apt 업데이트
sudo apt install anacron
아나크론 -V

Fedora, Rocky Linux 또는 AlmaLinux에서는 일반적으로 Cronie 패키지 제품군에서 해당 기능을 제공합니다. 수정하기 전에 설치된 패키지를 확인하십시오.

rpm -q 크로니 크로니-아나크론
명령 -v 아나크론

다음으로, 메인 파일을 편집하지 않고 표시합니다.

sudo cat /etc/anacrontab
sudo ls -l /var/spool/anacron

첫 번째 파일에는 작업 내용이 설명되어 있습니다. 두 번째 위치에는 작업 타임스탬프가 포함되어 있습니다. 배포판에 따라 anacron은 cron, systemd 서비스 또는 시스템 시작 시 실행될 수 있습니다. 실제로 어떤 파일이 있는지 확인해 보세요.

systemctl status anacron.service --no-pager
systemctl list-timers --all | grep -i anacron
sudo grep -R "anacron" /etc/cron.d /etc/cron.* 2>/dev/null

백업 기능이 포함된 일일 작업을 추가하세요.

먼저 설정을 저장하세요. 오류가 발생했습니다. /etc/anacrontab

sudo cp /etc/anacrontab /etc/anacrontab.bak-$(date +%F-%H%M)

예를 들어, 이미 테스트를 거친 백업 스크립트를 호출하려면 다음 줄을 추가하세요.

1 15 backup-home /usr/local/sbin/backup-home.sh >> /var/log/backup-home.log 2>&1

네 가지 분야는 각각 특정한 역할을 수행합니다.

  • 하루라는 기간을 정의합니다.
  • 십오
  • 백업 홈 타임스탬프 및 로깅에 사용되는 고유 식별자입니다.
  • 마지막 칸에는 전체 주문 내역이 있습니다.

스크립트에서 절대 경로를 사용하십시오. 예약된 작업의 환경은 대화형 세션과 다릅니다. 또한 복사하기 전에 대상 디스크가 마운트되었는지 확인하십시오. 실수로 간단한 로컬 폴더에 백업을 기록하면 데이터를 보호하지 않고도 루트 파티션이 가득 찰 수 있습니다.

구문을 검증한 다음 제어된 테스트를 실행합니다.

먼저 스크립트 자체를 테스트하십시오. 스크립트는 실행 가능해야 하고, 예상되는 결과를 생성해야 하며, 실패 시 0이 아닌 종료 코드를 반환해야 합니다.

sudo test -x /usr/local/sbin/backup-home.sh
sudo /usr/local/sbin/backup-home.sh

다음으로, 작업을 실행하지 않고 anacrontab 파일의 유효성을 검사합니다.

수두 아나크론 -T

반환 코드가 0인 출력이 없으면 구문이 허용된 것입니다. 해당 작업만 실행하려면 백업 홈 기한이나 기간을 기다리지 않고 다음을 사용하십시오.

sudo anacron -f -n -d backup-home

이 명령은 실제로 스크립트를 실행합니다. 삭제 또는 동기화 명령으로 테스트하지 마십시오. --삭제

실행 세부 정보와 타임스탬프는 로그에서 확인할 수 있습니다.

테스트 후에는 먼저 저장된 파일의 존재 여부와 날짜 등 비즈니스 결과를 확인하십시오. 아나크론 타임스탬프는 명령이 실행되고 완료되었다는 사실만 확인해 줍니다.

sudo stat /var/spool/anacron/backup-home
sudo tail -n 80 /var/log/backup-home.log

systemd 유닛이 포함된 배포판의 경우 다음도 참조하십시오.


sudo journalctl -t anacron -n 80 --no-pager

이러한 명령이 비어 있는 경우 배포판의 cron 로그를 확인하십시오. /var/log/syslog 데비안 또는 우분투에서 RHEL 제품군에 대한 정보입니다. 이 가이드는 다음과 같습니다. journalctl 및 시작 로그

크론 작업을 교체하기 전에 알아두어야 할 제한 사항

특정 시간에 시작해야 하는 작업에는 아나크론을 사용하지 마십시오. 아나크론의 기간은 일 단위로 계산되며, 지연은 아나크론이 트리거되는 시점부터 시작됩니다. 며칠간의 다운타임 후에는 지연된 각 ID가 한 번씩 실행되며, 다운타임 발생일마다 한 번씩 실행되는 것이 아닙니다.

기존 작업을 이동하기 전에 해당 작업의 사용자를 확인하십시오. /etc/anacrontab

거기 아나크론 사용 설명서 페이지 테스트 및 실행 옵션에 대한 문서를 제공합니다. Anacrontab 매뉴얼 기간, 지연 시간, 식별자 및 순서에 대한 필드를 지정합니다. 이전 cron 작업은 전체 주기 동안 주석 처리된 상태로 유지하고, 작업의 실제 출력을 확인한 다음, 따라잡기 프로세스가 제대로 작동할 때만 삭제합니다.

sudo apt update && sudo apt upgrade