Cron 작업: 초보자 튜토리얼 완료

Cron Jobs Complete Beginners Tutorial



Cron은 Linux 또는 UNIX 계열 운영 체제에서 사용자 개입 없이 주어진 일정에 따라 명령이나 스크립트를 실행할 수 있는 가장 유용한 유틸리티입니다. 예약된 명령 및 스크립트는 cron 작업으로도 명명됩니다. 예약된 백업 실행, 임시 파일 정리, 시스템 유지 관리 및 기타 다양한 반복 작업과 같은 반복 작업을 자동화하는 데 주로 사용됩니다. Windows OS의 작업 스케줄러와 유사합니다.

이 자습서에서는 cron으로 작업을 예약하기 위해 이해해야 하는 모든 것에 대한 기본 소개를 제공합니다. 여기에는 cron의 기본 구문, crontab 파일 편집, 몇 가지 예가 있는 cron으로 작업 예약, cron 작업 보기 등이 포함됩니다.







크론 잡의 기본

cron 작업의 몇 가지 기본 사항을 이해합시다.



크론드란?

Crond는 백그라운드에서 실행되는 Linux 시스템의 데몬이며 그 시간에 예약된 작업이 있는지 매분 확인합니다. 있는 경우 해당 작업을 수행하고 그렇지 않은 경우 비활성 상태로 유지됩니다.



크론 작업 구문

cron 작업의 구문은 다음과 같습니다.





* * * * *명령/스크립트

왼쪽에서:

  • 첫 번째 *는 분(0-59)에 해당합니다.
  • 두 번째 *는 시간(0-23)에 해당합니다.
  • 세 번째 *는 해당 월의 일(1-31)에 해당합니다.
  • 네 번째 *는 연도(1-12)의 월에 해당합니다.
  • 다섯 번째 *는 요일에 해당합니다(0-6, 일요일부터 토요일까지).

필드에 여러 값을 지정하려면 다음 연산자 기호를 사용하십시오.



  1. 별표(*): 필드에 가능한 모든 값을 지정하려면
  2. 대시(-): NS NS 값의 범위를 지정
  3. 쉼표(,): 값 목록을 지정하려면
  4. 구분 기호(/): 단계 값을 지정하려면

크론탭 파일 편집

Crontab은 특정 구문으로 예약된 작업을 포함하는 파일입니다. crontab 파일에는 두 가지 유형이 있습니다. 하나는 시스템별 크론 작업용이고 다른 하나는 사용자별 크론 작업용입니다.

시스템 크론 작업

시스템 전체의 크론 작업은 다음 위치에 있습니다. /etc/크론탭 파일 및 /etc/cron.d 디렉토리를 통해 실행됩니다. /etc/cron.hourly , /etc/cron.daily , /etc/cron.weekly 그리고 /etc/cron.monthly. 시스템 관리자만 이러한 파일에 액세스할 수 있습니다.

시스템 관리자는 다음 명령을 사용하여 cron 작업을 정의할 수 있습니다.

$나노 //크론탭

다음은 작업 구문입니다. /etc/크론탭 파일:

# min hr dayofmonth month dayofweek 사용자 이름 명령
* * * * *사용자1ifconfig

사용자별 크론 작업

사용자별 크론 작업은 / var / 스풀 / cron / crontabs 예배 규칙서. 이러한 작업을 수동으로 편집할 수 있지만 crontab -e 명령을 사용하여 이러한 작업을 편집하는 것이 좋습니다.

표준 사용자는 다음 명령을 사용하여 cron 작업을 정의할 수 있습니다.

$크론탭-그리고

예를 들어 테스트 사용자로 로그인한 경우 crontab -e 명령을 실행하면 테스트 사용자의 crontab 파일이 편집됩니다. 마찬가지로 루트 사용자로 로그인한 경우 crontab -e 명령은 루트 사용자의 crontab 파일을 편집합니다.

터미널에서 아래 명령을 실행하여 다른 사용자의 crontab 파일을 편집하십시오.

$수도크론탭-유 <사용자 이름> -그리고

예를 들어, test1 사용자로 로그인하고 test2 사용자에 대한 crontab 파일을 편집하려는 경우 명령은 다음과 같습니다.

$수도크론탭-유테스트2-그리고

crontab 파일에 추가할 수 있는 cron 작업의 구문은 다음과 같습니다.

# m h dayofmonth 월 dayofweek 명령
* * * * * ifconfig

사용자별 작업에서 사용자 이름이 등록되지 않은 것을 볼 수 있습니다.

크론탭 명령

crontab 명령은 cron 작업을 편집, 나열 및 제거하는 데 사용됩니다.

  • crontab -e 현재 사용자의 crontab 파일을 편집하려면
  • crontab -l crontab 파일의 내용을 표시하려면
  • crontab -u [사용자 이름] 다른 사용자의 crontab 파일을 편집하려면
  • 크론탭 -r 현재 사용자의 crontab 파일을 제거하려면
  • crontab -i 현재 사용자의 crontab 파일을 제거하기 전에 프롬프트를 표시하려면

Cron으로 작업 예약하기

Cron을 사용하면 분 단위의 최소 단위로 특정 시간, 날짜 및 간격으로 작업을 실행할 수 있습니다. 즉, 1분마다 작업을 실행할 수 있습니다.

cron으로 작업을 예약하려면 이전 섹션에서 설명한 방법을 사용하여 crontab 파일을 엽니다. crontab 파일을 열면 텍스트 편집기를 선택하라는 메시지가 표시됩니다. 숫자를 입력하여 원하는 텍스트 편집기를 선택하십시오. 파일 맨 아래까지 아래로 스크롤하고 위에서 설명한 구문으로 작업을 추가합니다. 파일의 각 행은 하나의 명령을 지정합니다. 줄의 처음 5개 항목은 예약된 시간을 지정하고 마지막 항목은 실행할 명령 또는 스크립트를 지정합니다.

예시:

crontab 파일의 다음 줄은 월요일부터 토요일까지 요일마다 5시간 후 30분마다 명령/스크립트를 실행하도록 cron 작업을 예약합니다.

* /30 5 * * 1-6명령/스크립트

이 필드에서 명령을 실행할 분을 지정합니다. 0에서 59까지 지정됩니다. 이 필드의 *는 1분마다 작업을 실행한다는 의미입니다. 위의 crontab 행에서 */30은 cron 작업에 지정된 명령/스크립트를 30분마다 실행하도록 지시합니다.

시간

이 필드에서 명령을 실행할 시간을 지정합니다. 0에서 23까지 지정됩니다. 이 필드의 *는 매시간 작업을 실행한다는 의미입니다. 위의 crontab 행에서 값 5는 cron 작업이 지정된 명령/스크립트를 5시간마다 실행하도록 지시합니다.

날짜

이 필드에서 명령을 실행하려는 특정 요일을 지정합니다. 1에서 31까지 지정됩니다. 이 필드의 *는 매일을 의미합니다. 위의 crontab 행에서 *는 cron 작업에 지정된 명령/스크립트를 매일 실행하도록 지시합니다.

올해의 달

이 필드에서 명령을 실행할 특정 월을 지정합니다. 1에서 12까지 지정됩니다. 이 필드의 *는 매월을 의미합니다. 위의 crontab 행에서 *는 cron 작업에 지정된 명령/스크립트를 매월 실행하도록 지시합니다.

요일

이 필드에서 명령을 실행하려는 특정 요일을 지정합니다. 일요일부터 토요일까지 0에서 6까지 지정됩니다(일요일은 0, 토요일은 6). 이 필드의 *는 한 주의 매일을 의미합니다. 위의 crontab 행에서 *는 cron 작업에 지정된 명령/스크립트를 일주일에 매일 실행하도록 지시합니다.

크론 작업의 예

다음은 cron 작업의 몇 가지 예입니다.

15분마다 크론 작업 실행

cron 작업이 15분마다 실행되도록 예약하려면 crontab 파일에 아래 줄을 추가합니다.

* /열 다섯 * * * *명령/스크립트

매일 오전 5시에 cron 작업 실행

cron 작업이 매일 오전 5시에 실행되도록 예약하려면 crontab 파일에 아래 줄을 추가합니다.

0 5 * * *명령/스크립트

매일 오후 5시에 cron 작업 실행

cron 작업이 매일 오후 5시에 실행되도록 예약하려면 crontab 파일에 아래 줄을 추가하십시오.

0 17 * * *명령/스크립트

매월 1일 오전 9시에 cron 작업 실행

cron 작업이 매월 1일 오전 9시에 실행되도록 예약하려면 crontab 파일에 아래 줄을 추가합니다.

0 9 1 * *명령/스크립트

3월 15일마다 1시간마다 크론 작업 실행

3월 15일마다 1시간마다 cron 작업을 예약하려면 crontab 파일에 다음 줄을 추가합니다.

0 * 열 다섯 *명령/스크립트

5시간마다 크론 작업 실행

5시간마다 cron 작업을 예약하려면 crontab 파일에 다음 줄을 추가합니다.

0 * /5 * * *명령/스크립트

15분마다 크론 작업 실행

cron 작업이 15분마다 실행되도록 예약하려면 crontab 파일에 아래 줄을 추가합니다.

* /열 다섯 * * * *

문자열 사용

다음 문자열을 사용하여 작업을 정의할 수도 있습니다.

  1. @시간당: 1시간에 한 번 작업을 실행하려면, 즉, 0 * * * *
  2. @자정: 매일 한 번 작업을 실행하려면, 즉, 0 0 * * *
  3. @일일: 자정과 동일
  4. @주간: 매주 한 번 작업을 실행하려면, 즉, 0 0 * * 0
  5. @월간 간행물: 한 달에 한 번 작업을 실행하려면, 즉, 0 0 1 * *
  6. @매년: 1년에 한 번 작업을 실행하려면, 즉, 0 0 1 1 *
  7. @매년: @매년과 동일
  8. @재부팅: 시작할 때마다 한 번씩 작업을 실행하려면

예를 들어 매주 스크립트나 명령을 실행하려면 crontab 파일의 항목은 다음과 같습니다.

@주간 명령/스크립트

사전 정의된 Cron 디렉터리

Linux에는 저장된 스크립트가 자동으로 실행되는 미리 정의된 cron 디렉토리가 있습니다. 이 디렉토리 아래에 스크립트를 배치하면 구성된 시간에 자동으로 실행됩니다.

  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

예를 들어, 한 달에 한 번 스크립트를 실행하려면 /etc/cron.monthly에 배치해야 합니다.

크론 작업 보기

현재 사용자의 작업 보기

다음 명령을 사용하여 현재 사용자에 대해 예약된 모든 크론 작업을 봅니다.

$크론탭-NS

루트 사용자의 작업 보기

루트 사용자의 예약된 모든 작업을 보려면 터미널에서 다음 명령을 실행하십시오.

$고양이 //크론탭

루트 사용자로 로그인하거나 sudo로 명령을 실행해야 합니다.

다른 사용자의 작업 보기

특정 사용자의 예약된 모든 작업을 보려면 터미널에서 다음 명령을 실행하여 실제 사용자 이름으로 바꾸십시오.

$수도크론탭-유 <사용자 이름> -NS

이 명령을 실행하려면 sudo 권한이 필요합니다.

시간별 크론 작업 보기

매시간 실행되도록 구성된 모든 cron 작업을 보려면 터미널에서 다음 명령을 실행하십시오.

$ -NS //cron.시간당

일일 크론 작업 보기

매일 실행되도록 구성된 모든 크론 작업을 보려면 터미널에서 다음 명령을 실행하십시오.

$ -NS //cron.daily/

주간 크론 작업 보기

매주 실행되도록 구성된 모든 cron 작업을 보려면 터미널에서 다음 명령을 실행하십시오.

$ -NS //cron.weekly/

월별 크론 작업 보기

매월 실행되도록 구성된 모든 크론 작업을 보려면 터미널에서 다음 명령을 실행하십시오.

$ -NS //cron.monthly/

모든 크론 작업 백업

삭제 시 복구할 수 있도록 모든 크론 작업을 파일에 백업하는 것이 좋습니다. 모든 현재 작업을 백업하려면 리디렉션 연산자를 사용하여 crontab -l의 출력을 파일로 리디렉션합니다.

$크론탭-NS >backup_cron.txt

예약된 모든 Cron 작업 제거

예약된 모든 크론 작업을 제거하려면 다음과 같이 -r 플래그를 사용합니다.

$크론탭-NS

크론 권한

다음 두 파일을 통해 crontab 명령에 대한 액세스를 제한할 수 있습니다. / etc/cron.allow 및 / etc/cron.deny.

  • /etc/cron.allow – crontab 명령에 대한 액세스를 허용할 사용자(한 줄에 하나씩)를 추가합니다. 이러한 사용자는 예약 작업을 실행할 수 있습니다.
  • /etc/cron.deny – crontab 명령에 대한 액세스를 거부하려는 사용자(한 줄에 하나씩)를 추가합니다. 이러한 사용자는 예약된 작업을 실행할 수 없습니다.

Crontab 구문 생성기

crontab에 대한 구문 생성을 허용하는 웹사이트가 있습니다. 이러한 웹 사이트를 사용하면 구문을 기억하지 않고도 crontab 표현식을 더 쉽게 생성할 수 있습니다. 다음과 같은 구문 생성기에 사용할 수 있는 다양한 웹사이트가 있지만 crontabgenerator.com , crontab-generator.org , 그리고 cronmaker.com . 내가 주로 선호하고 도움이 된 것은 crontab.guru . 사용자 입력에 따라 crontab 파일에 복사하여 붙여넣을 수 있는 crontab 표현식을 생성합니다.

결론

이 튜토리얼에서는 cron 작업의 기본, 구문 및 설정 방법을 설명했습니다. 또한 cron 작업을 보고, 백업을 생성하고, 더 이상 필요하지 않은 경우 제거하는 방법에 대해 논의했습니다.