logo

예제가 포함된 Linux의 'crontab'

그만큼 크론탭 정기적으로 실행하려는 명령 목록과 해당 목록을 관리하는 데 사용되는 명령의 이름입니다. Crontab은 작업 스케줄러 cron을 사용하여 작업을 실행하므로 cron 테이블을 의미합니다. 크론 그 자체는 시간을 뜻하는 그리스어인 크로노스(chronos)의 이름을 따서 명명되었습니다. cron은 설정된 일정에 따라 자동으로 작업을 수행하는 시스템 프로세스입니다. 일정을 crontab이라고 하며, 이는 해당 일정을 편집하는 데 사용되는 프로그램의 이름이기도 합니다.

Linux Crontab 구문

Linux Crontab 형식은 다음 구문으로 표시됩니다.



MIN HOUR DOM MON DOW   CMD>

각 필드를 분석해 보겠습니다.

필드

설명



허용되는 값

MIN(분)

명령이 실행되는 분을 지정합니다.



범위는 0부터 59까지입니다.

시간

명령이 실행되도록 예약된 시간을 나타냅니다.

0부터 23까지입니다.

DOM(월의 일)

작업의 날짜를 지정합니다.

1부터 31까지입니다.

월(월)

명령이 실행되는 월을 나타냅니다.

1부터 12까지 다양합니다.

DOW(요일)

작업의 요일을 지정합니다.

0부터 6까지의 숫자로 표시되며, 0과 6은 모두 일요일에 해당합니다.

CMD(명령)

예약된 시간에 실행될 실제 명령이나 스크립트를 나타냅니다.

—————–

크론 작업의 예

1. 특정 시간 동안 작업 일정 잡기

cron의 기본 사용법은 아래와 같이 특정 시간에 작업을 실행하는 것입니다. 그러면 6월 10일 오전 8시 30분에 전체 백업 셸 스크립트(전체 백업)가 실행됩니다. 시간 필드는 24시간 형식을 사용합니다. 따라서 오전 8시에는 8을 사용하고 오후 8시에는 20을 사용합니다.

30 08 10 06 * /home/maverick/full-backup>

30 – 30분 오전 08 – 08 오전 10 – 10일 06 – 6번째 달 (6월) * – 매주 매일

2. Crontab 항목을 보려면

  • 현재 로그인한 사용자의 Crontab 항목 보기: crontab 항목을 보려면 unix 계정에서 crontab -l을 입력하세요.
  • 루트 Crontab 항목 보기: 루트 사용자(su – root)로 로그인하고 crontab -l을 수행합니다.
  • 다른 Linux 사용자의 crontab 항목을 보려면 루트에 로그인하고 -u {username} -l을 사용합니다.

3. Crontab 항목을 편집하려면 현재 로그인한 사용자의 Crontab 항목을 편집합니다.

crontab 항목을 편집하려면 crontab -e를 사용하십시오. 기본적으로 현재 로그인한 사용자 crontab을 편집합니다.

4. Cron을 사용하여 매분마다 작업을 예약합니다.

이상적으로는 매분 작업을 예약할 필요가 없을 수도 있습니다. 하지만 이 예를 이해하면 다른 예를 이해하는 데 도움이 됩니다.

* * * * * CMD>

*는 가능한 모든 단위를 의미합니다. 즉, 일년 내내 매시간, 매분을 의미합니다. 이 *를 직접 사용하는 것보다 다음과 같은 경우에 매우 유용하다는 것을 알게 될 것입니다. 분 필드에 */5를 지정하면 5분마다를 의미합니다. 분 필드에 0-10/2를 지정하면 처음 10분 동안 2분마다를 의미합니다. 따라서 위의 규칙은 다른 4개 필드 모두에 사용될 수 있습니다.

5. 한 번 이상 작업을 예약하려면(예: 하루에 두 번)

다음 스크립트는 매일 하루에 두 번 증분 백업을 수행합니다. 이 예제에서는 매일 11시와 16시에 지정된 증분 백업 쉘 스크립트(incremental-backup)를 실행합니다. 필드의 쉼표로 구분된 값은 언급된 모든 시간 동안 명령을 실행해야 함을 지정합니다.

00 11, 16 * * * /home/maverick/bin/incremental-backup>

00 – 0분(정시) 오전 11시, 16시 – 11시, 오후 4시 * – 매일 * – 매월 * – 매주 매일

6. 특정 시간 동안 작업을 예약하려면(예: 평일에만)

특정 시간 범위에서 매 시간마다 작업을 예약하려면 다음을 사용하세요.

  • 매일 근무 시간 동안 Cron Job : 매일(주말 포함) 오전 9시부터 오후 6시까지 근무 시간 동안 데이터베이스의 상태를 확인하는 예제입니다.
00 09-18 * * * /home/maverick/bin/check-db-status>
  • 00 – 0분(정시) 09-18 – 오전 9시, 오전 10시, 오전 11시, 오전 12시, 오후 1시, 오후 2시, 오후 3시, 오후 4시, 오후 5시, 오후 6시 * – 매일 * – 매일 월 * – 매주 매일
  • Cron Job 매주 평일 근무 시간 동안 : 이 예시에서는 평일 오전 9시부터 오후 6시까지 매주(토요일 제외) 데이터베이스 상태를 확인합니다.
00 09-18 * * 1-5 /home/maverick/bin/check-db-status>
  • 00 – 0분(정시) 09-18 – 오전 9시, 오전 10시, 오전 11시, 오전 12시, 오후 1시, 오후 2시, 오후 3시, 오후 4시, 오후 5시, 오후 6시 * – 매일 * – 매일 1~5월 - 월, 화, 수, 목, 금(매주 평일)

7. 10분마다 백그라운드 Cron 작업을 예약합니다.

10분마다 디스크 공간을 확인하고 싶다면 다음을 사용하세요.

java 배열을 반환하는 방법
*/10 * * * * /home/maverick/check-disk-space>

연중 내내 10분마다 지정된 명령 check-disk-space를 실행합니다. 그러나 특정 시간 동안에만 명령을 실행해야 하거나 그 반대의 경우도 있을 수 있습니다. 위의 예는 이러한 작업을 수행하는 방법을 보여줍니다. 5개 필드에 값을 지정하는 대신 아래와 같이 단일 키워드를 사용하여 지정할 수 있습니다. 위의 5개 필드 대신 재부팅, 자정, 연간, 매시간과 같이 @ 뒤에 키워드를 사용할 수 있는 특별한 경우가 있습니다. Cron 특수 키워드와 그 의미

Keyword Equivalent @yearly 0 0 1 1 * @daily 0 0 * * * @hourly 0 * * * * @reboot Run at startup.>

8. @yearly를 사용하여 매년 첫 번째 순간에 작업을 예약하려면

매년 첫 번째 1분에 작업을 실행하려면 아래와 같이 @yearly cron 키워드를 사용하면 됩니다. 이렇게 하면 1월 1일 00:00에 연간 유지 관리 쉘 스크립트를 사용하여 시스템 연간 유지 관리가 실행됩니다. 매년.

@yearly /home/maverick/bin/annual-maintenance>

9. @monthly를 사용하여 매월 시작되는 Cron 작업을 예약하려면

위의 @yearly와 비슷합니다. 그러나 @monthly cron 키워드를 사용하여 매월 한 번씩 명령을 실행합니다. 그러면 매월 1일 00:00에 쉘 스크립트 테이프 백업이 실행됩니다.

@monthly /home/maverick/bin/tape-backup>

10. @daily를 사용하여 매일 백그라운드 작업을 예약하려면

@daily cron 키워드를 사용하면 매일 00:00에 cleanup-logs 쉘 스크립트를 사용하여 일일 로그 파일 정리가 수행됩니다.

@daily /home/maverick/bin/cleanup-logs 'day started'>

11. @reboot를 사용하여 재부팅할 때마다 Linux 명령을 실행하려면

@reboot cron 키워드를 사용하면 머신이 매번 부팅된 후 지정된 명령이 한 번 실행됩니다.

@reboot CMD>