Linux의 Crontab: 작업 스케줄링 예

크론탭이란 무엇입니까?

크론(Cron)은 시간을 뜻하는 그리스어 '크로노스(Chronos)'에서 따온 이름이다. 특정 일정에 따라 자동으로 작업을 수행하는 시스템 프로세스입니다. 정기적인 예약 작업을 실행하는 데 사용되는 명령 집합입니다. Crontab은 "cron 테이블"을 의미합니다. cron으로 알려진 작업 스케줄러를 사용하여 작업을 실행할 수 있습니다.

Crontab은 해당 일정을 편집하는 데 사용되는 프로그램의 이름이기도 합니다. 이는 특정 일정에 대해 주기적으로 실행되는 셸 명령을 나타내는 구성 파일인 crontab 파일에 의해 구동됩니다.

Cronjob을 사용하는 이유는 무엇입니까?

Linux에서 Cronjob을 사용하는 이유는 다음과 같습니다.

  • OS가 로그 파일이나 데이터베이스의 예약된 백업을 수행하도록 도와줍니다.
  • 오래된 로그 파일 삭제
  • Archi데이터베이스 테이블 5개 및 제거
  • 뉴스레터, 비밀번호 만료 이메일 등 모든 알림 이메일을 발송합니다.
  • 캐시된 데이터의 정기적인 정리
  • Crontab은 Unix 작업을 자동화하는 이상적인 옵션입니다.
  • 시스템 유지 관리를 자동화하는 데 사용됩니다.

리눅스에서 크론을 어떻게 사용하나요?

리눅스 시스템 pack에는 crontab이라는 유용한 작업 스케줄러가 있습니다. Crontab은 자동화된 프로세스를 루트로 실행하도록 예약할 수 있기 때문에 널리 사용됩니다. 따라서 자동화된 프로세스를 루트로 실행하면 시스템 변경이 더 쉬워집니다. 작업을 변경한 다음 작업이 다시 시작될 때까지 기다리면 됩니다.

Linux Crontab 형식

Linux의 Crontab에는 6개의 필드가 있습니다. 처음 XNUMX개 필드는 실행 시간과 날짜를 정의하고 XNUMX번째 필드는 명령 실행에 사용됩니다.

크론탭 구문:

[Minute] [hour] 
[Day_of_the_Month] 
[Month_of_the_Year] 
[Day_of_the_Week] 
[command]

Linux Crontab 형식

  • 별점(*): 매칭에 사용
  • 범위 정의: 1-10 또는 30-40 또는 jan-mar, mon-wed와 같은 하이픈을 사용하여 범위를 정의할 수 있습니다.
  • 여러 범위 정의: apr-jun,oct-dec와 같이 구분된 명령으로 다양한 범위를 정의할 수 있습니다.

Crontab을 추가/수정하는 방법

사용자는 다음 crontab 명령을 사용하여 crontab 작업을 편집할 수 있습니다.

$ crontab -u -e 

위 명령을 실행하면 컴퓨터 시스템의 개인용 crontab 구성이 열립니다. 이 구성은 기본 텍스트 편집기를 사용하여 편집할 수 있습니다.

다음 명령을 사용하면 crontab이 자동으로 변경 사항을 적용하므로 crontab을 다시 시작할 필요가 없습니다.

$ crontab -l

crontab 작업을 제거하려면 다음 명령을 사용하세요.

$ crontab -r

crontab에서 작업을 추가하거나 업데이트하려면 아래 명령을 사용하십시오.

crontab -e

다른 사용자의 crontab을 편집하는 명령

crontab -u username -e

Crontab을 나열하는 방법

현재 사용자의 crontab 항목을 보는 명령

crontab -l

특정 사용자의 crontab 항목을 보는 명령:

crontab -u username -l

중요한 크론탭 예제

다음은 Crontab의 몇 가지 중요한 예입니다.

상품 설명 명령
다양한 예약 작업을 수행하는 Cron 명령입니다.
아래 주어진 명령은 매일 오전 7시와 오후 5시에 실행됩니다.
0 7,17 * * * /scripts/script.sh
5분마다 cron을 실행하는 명령입니다.
*/5* * * * *  /scripts/script.sh
Cron 스케줄러 명령은 매 시간마다 작업을 실행하는 데 도움이 됩니다. Monday 오전 5시에. 이 명령은 시스템 정리와 같은 주간 작업을 수행하는 데 유용합니다.
0 5 * * mon  /scripts/script.sh
명령은 3분 간격으로 스크립트를 실행합니다.
*/3 * * * * /scripts/monitor.sh
특정 달에 실행되는 cron을 예약하는 명령입니다.
작업을 실행하는 이 명령은 XNUMX월, XNUMX월, XNUMX월에 실행됩니다. 때로는 선택한 월별 작업을 실행하기 위해 작업을 예약해야 하는 경우도 있습니다.
* * * feb,jun,sep *  /script/script.sh
선택한 날짜에 실행할 명령입니다. 이 예제는 각 Monday 그리고 수요일 오후 5시.
0 17 * * mon,wed  /script/script.sh
이 명령을 사용하면 cron이 매월 첫째 토요일에 실행될 수 있습니다.
0 2 * * sat  [ $(date +%d) -le 06 ] && /script/script.sh
6시간 간격으로 스크립트를 실행하는 명령이므로 아래와 같이 구성할 수 있습니다.
0 */6 * * * /scripts/script.sh
이 명령은 작업이 두 번 실행되도록 예약합니다. Monday 그리고 화요일. 다음 설정을 사용하여 이를 수행합니다.
0 4,17 * * mon,tue /scripts/script.sh
명령은 15초마다 실행되도록 크론을 예약합니다.
* * * * * /scripts/script.sh
* * * * *  sleep 15; /scripts/script.sh
매년 작업을 예약하는 명령입니다.
@연간 타임스탬프는 "0 0 5 1 *"입니다. 매년 XNUMX분마다 작업이 실행됩니다. 새해 인사를 보내는 데 사용할 수 있습니다.
@yearly /scripts/script.sh 
매월 실행할 명령 작업입니다.
@월별 타임스탬프는 "0 0 1 * *"과 유사합니다. 이 명령 표현식을 사용하면 매월 첫 번째 분에 작업을 실행할 수 있습니다.
@monthly /scripts/script.sh
단일 cron을 사용하여 여러 작업을 실행하는 명령입니다.
* * * * * /scripts/script.sh; /scripts/scrit2.sh
매주 실행할 작업을 예약하는 명령입니다.
@weekly 타임스탬프는 "0 0 4 * sun"과 유사합니다. 이는 시스템 정리 등과 같은 주간 작업을 수행하는 데 사용됩니다.
@weekly /bin/script.sh
작업은 매일 실행되도록 예약됩니다.
@daily 타임스탬프는 “0 2 * * *”와 유사합니다. 매일 XNUMX분마다 작업을 실행합니다.
@daily /scripts/script.sh
작업이 매시간 실행되도록 허용합니다.
@hourly 타임스탬프는 "0 * * * *"와 유사합니다. 이 명령은 매시간 첫 XNUMX분에 작업을 실행합니다.
@hourly /scripts/script.sh
시스템 재부팅 시 작업을 실행할 수 있습니다.
@reboot 표현식은 시스템 시작 시 시스템이 실행하려는 작업에 유용합니다. 이는 백그라운드 작업을 자동으로 시작하는 데 도움이 됩니다.
@reboot /scripts/script.sh

슬립폼 공법 선택시 고려사항

  • 크론(Cron)은 시간을 뜻하는 그리스어 '크로노스(Chronos)'에서 따온 이름이다.
  • Cronjob은 OS가 로그 파일이나 데이터베이스의 예약된 백업을 수행하도록 도와줍니다.
  • Linux 시스템 팩에는 자동화된 프로세스를 루트로 실행하도록 예약할 수 있는 crontab이라는 유용한 작업 스케줄러가 있습니다.
  • Linux의 Crontab에는 6개의 필드가 있습니다. 처음 XNUMX개 필드는 실행 시간과 날짜를 정의하고 XNUMX번째 필드는 명령 실행에 사용됩니다.