Crontab 매뉴얼 – Linux에서 작업 예약

매일, 매주 또는 매월 동일한 작업을 반복해서 수행하는 것은 시간이 지남에 따라 복잡성에 따라 피곤하고 퇴화되는 작업입니다. 이 문제에 대한 해결책은 최대한 자동화하는 것입니다. 처럼 Windows 특정 작업을 자동화할 수 있습니다. Linux 또한 Crontab을 통해 이 옵션을 제공하지만 배타적이지는 않습니다.

백업 복사본 만들기, 보고서 생성, 구성 수정 또는 기타 작업을 위해 Linux 작업을 자동화하려는 경우 솔루션은 Cron과 함께 Crontab을 사용하는 것입니다. 응용 프로그램 최소.

크론탭 매뉴얼

크론탭이란?

Crontab은 일련의 매개변수를 기반으로 자동화가 생성되는 텍스트 파일입니다. 크론이 읽다 . 두 응용 프로그램은 대부분의 가장 일반적인 Linux 배포판에서 기본적으로 사용할 수 있으므로 사용하기 위해 컴퓨터에 리포지토리를 설치할 필요가 없습니다.

Crontab은 한 줄에 하나씩 일련의 스크립트를 제공하여 원하는 정확한 시간을 사용자 지정할 수 있습니다. 하나 이상의 작업을 수행하기 위해 그리고 시간이 지남에 따라 반복됩니다. 사실, 그 이름은 그리스어 단어에서 파생됩니다. 크로노스 , 시간을 의미합니다. 각 스크립트에는 실행해야 하는 정확한 날짜에 대한 정보가 포함되어 있으며 이 날짜는 일련의 숫자로 표시됩니다. 샘플의 경우 버튼입니다. 다음 스크립트는 매주 일요일 오전 5시 30분에 nfsfind를 실행합니다.

30 5 * * 0 /usr/lib/fs/nfs/nfsfind

처음 두 숫자는 명령이 실행되는 시간을 나타내며 첫 번째 숫자는 분이고 두 번째 숫자는 시간입니다. Crontab에서 사용하는 시간 형식은 24시간이므로 오후 5시에 작업을 수행하려면 숫자 17이 됩니다. 별표는 모든 값을 나타내고 숫자 0은 일요일에 해당합니다.

Cron과 Crontab을 혼동하지 마십시오.

Crontab을 사용하면 시스템의 자동화 , 백그라운드에서 실행되고 이전에 Crontab에서 구성한 모든 작업을 수행하는 응용 프로그램인 Cron 응용 프로그램과 함께 배타적이지는 않지만 실행됩니다. 이 응용 프로그램은 시스템 시간을 사용하여 수행하므로 가상 머신을 사용하는 경우 게스트 머신의 시간과 컴퓨터의 시간이 항상 동일해야 합니다. 옳은.

Cron은 매분 Crontab 파일의 내용을 읽으므로 실행할 새 스크립트를 찾기 위해 응용 프로그램이 내용을 다시 읽도록 강제할 필요 없이 동일한 세션에서 수행하려는 작업을 수행하기 위해 언제든지 파일을 편집할 수 있습니다.

모든 사용자가 Crontab 파일을 생성하여 시스템 작업을 자동화할 수 있는 것은 아닙니다. 시스템 관리자는 cron.allow 또는 cron.den 파일을 통해 이 옵션을 허용하거나 거부할 수 있습니다. 이 파일은 가지고 있는 Linux 배포 버전에 따라 /etc/cron.do /etc/에 있습니다. 우리 컴퓨터에 설치되었습니다.

Linux에서 작업을 자동화하는 방법

위에서 언급했듯이 Crontab 스크립트는 실행하려는 날짜로 시작하여 명령이 이어집니다. Crontab 구문은 다음과 같습니다.

일정 관리

minuto hora día-del-mes mes día-de-la-semana ruta-comandos

  • 분, 이것은 0에서 59 사이일 수 있습니다.
  • 시간은 우리가 언급했듯이 Crontab은 24시간제를 사용하므로 숫자 범위는 0에서 23까지입니다.
  • 요일, 이 매개변수는 1에서 31까지이므로 많은 미스터리가 없습니다.
  • 1에서 12까지의 월
    • 1년 XNUMX월
    • 2월 2
    • 3월 XNUMX
    • 4월 XNUMX월
    • 5년 XNUMX월
    • 6년 유월
    • 7년 XNUMX월
    • 8년 XNUMX월에
    • 9년 XNUMX월
    • 10년 XNUMX월
    • 11년 XNUMX월
    • 12월 12.
  • 요일, 0에서 6까지, Crontab의 일부 버전에서는 숫자 0을 사용할 수 있지만 일요일은 숫자 7입니다. 이런 식으로 요일에 대한 코드는 다음과 같습니다.
    • 0 일요일
    • 1 월요일
    • 2 화요일
    • 3 수요일
    • 4 목요일
    • 금요일 5
    • 6 토요일

그러나 추가로 별표(*)를 사용하여 변수의 가능한 모든 값을 지정할 수도 있습니다. 여러 값을 설정하려면 쉼표(,) 또는 하이픈(-)으로 구분하는 값 범위를 통해 설정할 수 있습니다. "/"를 사용하여 다른 단계를 설정할 수도 있습니다.

여전히 명확하지 않은 경우 주기성에 따라 주기적으로 작업을 수행하는 데 사용할 수 있는 시간 코드를 보여줍니다.

  • 0 * * * * 시간 코드를 사용하여 매시 정각에 스크립트가 실행됩니다.
  • 0 0 * * * 매일 스크립트는 한 번만 실행됩니다.
  • 0 0 * * 0 스크립트는 일주일에 한 번 실행됩니다.
  • 0 0 1 * * 한 달에 한 번 실행됩니다.
  • 0 0 1 1 * 스크립트는 XNUMX년에 한 번 실행됩니다.

Crontab에서 작업 예약이 작동하는 방식에 대해 명확해지면 가장 먼저 할 일은 다음 명령을 사용하여 자동화하려는 모든 프로세스를 생성할 파일을 생성하는 것입니다.

crontab nombre-archivo

새 것을 만들고 싶지 않거나 이미 만들었고 편집하고 싶다면 이 명령을 사용합니다.

crontab -e

생성된 Crontab 파일을 삭제하고 싶다면

crontab -d

다음 명령을 사용하여 Crontab 파일에 포함된 모든 작업을 나열할 수 있습니다.

crontab -d

시스템 관리자는 cron.allow 또는 cron.den 파일, 이전에 위치를 수정하지 않은 경우 /etc/cron.d/ 또는 /etc/에 있는 파일을 편집하여 시스템 자동화 사용을 제한할 수 있습니다.

작업 자동화

우리가 만든 Crontab 파일을 편집하기 위해 모든 Linux 배포판에 포함된 텍스트 편집기를 사용할 것이지만 -e 변수를 추가하여 Crontab에서 직접 편집할 수도 있습니다.

nano nombrearchivo

별표가 있는 숫자 코드와 실행하려는 스크립트를 소개합니다. 다음으로 Cron에게 실행할 수 있는 권한을 부여해야 합니다. 그렇지 않으면 Cron이 자신의 존재를 알지 못하고 실행할 수 없게 됩니다. 이를 위해 다음 명령을 사용합니다.

chmod ugo+x nombrearchivo

처음에 Crontab을 사용하여 작업을 자동화하는 것은 전혀 쉬운 일이 아닌 것처럼 보이며 거의 모든 작업을 명령줄에 의존해야 하는 Linux(거의 일반적)의 필요성을 연상시켜 더 많은 사용자가 하루에 Linux를 운영 체제로 채택하는 것을 제한합니다. 오늘 기준. .

Windows 작업 스케줄러는 필요한 지식이 없으면 사용하기 쉽지 않은 그래픽 인터페이스를 사용하지만 Linux에서 명령줄을 통해 제공하는 것보다 훨씬 직관적입니다.

Crontab 및 Cron 작업 예제

Linux에서 작업을 자동화하기 위해 가장 먼저 해야 할 일은 구성할 때 컴퓨터에서 실행하려는 모든 명령을 포함할 파일을 만드는 것입니다. 이 예에서는 tmp 디렉토리에 있는 모든 파일과 빈 폴더를 삭제하는 "test" 파일을 만들 것입니다. 이를 위해 다음 명령을 입력합니다.

crontab prueba

다음으로 명령(또는 따옴표 없이 세미콜론 ";"으로 구분하는 명령)을 입력해야 합니다. 이 예에서는 Crontab을 사용하여 tmp 폴더의 파일을 삭제합니다.

find /tmp -type f -empty -delete

다음으로 파일을 편집하여 일정을 추가합니다. 즉, 파일에 입력한 작업이 실행되기를 원할 때입니다.

crontab -e

매일 아침 10시에 실행되게 하려면 스크립트 앞에 0 10 * * *을 추가해야 하고 다음과 같이 줄을 남겨둡니다.

0 10 * * * find /tmp -type f -empty -delete

다른 시간에 실행되도록 하려면 실행하려는 시간(10시간 형식)의 숫자 24을 수정하기만 하면 됩니다. 우리는 또한 사용할 수 있습니다 시간 코드 이를 구성하기 위해 프로그래밍 관리 섹션에 표시했습니다. 마지막으로 Cron이 생성한 자동화 파일을 실행할 수 있도록 다음 명령을 사용합니다.

[code]chmod ugo+x prueba

크론의 대안

이전 섹션에서 언급했듯이 Cron은 이전에 Crontab에 입력한 명령을 실행하는 역할을 합니다. Cron은 하루 24시간 운영되는 팀을 위한 완벽한 도구이지만 작업이 수행되는 동안 팀에서 리소스를 빼앗아가더라도 작업 일정에 맞게 조정할 수도 있습니다. Cron에 대한 더 간단한 옵션을 찾고 있다면 가장 좋은 대안을 보여드리겠습니다.

아나크론

Anacron을 사용하면 하루, 한 주 또는 한 달 동안 언제든지 자동으로 작업 실행을 예약할 수 있습니다. 컴퓨터가 꺼져 있으면 다음에 컴퓨터를 시작할 때 이전에 Crontab에 입력한 작업이 수행됩니다. Cron을 사용하면 지정된 날짜에 컴퓨터가 꺼지면 컴퓨터를 켤 때 작업이 수행되지 않습니다. Anacron은 대부분의 Linux 배포판에서 사용할 수 있으며 다음 명령을 통해 컴퓨터에 설치할 수 있습니다.

sudo apt install anacron

크로니

Cronie는 Cron보다 훨씬 더 완벽한 경험을 제공하고 작은 응용 프로그램 세트(Anacron 포함)를 제공하며 Crontab을 통해 작업 흐름을 매우 빠르고 쉽게 프로그래밍할 수 있습니다. Anacron과 달리 Cronie를 설치하려면 Linux 리포지토리에서 사용할 수 없으므로 웹 페이지를 방문해야 합니다. GitHub의 다운로드하거나 다음 명령을 사용하십시오.

wget https://github.com/cronie-crond/cronie/releases/download/cronie-1.6.1/cronie-1.6.1.tar.gz