웹사이트 검색

11 Linux의 Cron 스케줄링 작업 예


이 기사에서는 Crontab 명령을 사용하여 정기적으로 백그라운드에서 Linux 작업을 자동으로 예약하고 실행하는 방법을 검토하고 살펴보겠습니다.

빈번한 작업을 수동으로 처리하는 것은 시스템 관리자에게 어려운 작업이며 이러한 작업은 Linux 또는 Unix 계열 운영 체제에서 cron 데몬을 사용하여 사람의 개입 없이 백그라운드에서 자동으로 예약되고 실행될 수 있습니다.

예를 들어 명령줄에서 예약된 작업을 실행하는 데 사용되는 Cron 데몬을 사용하여 Linux 시스템 백업, 업데이트 예약, 파일 동기화 등을 자동화할 수 있습니다. 또는 온라인 도구를 사용하여 크론 작업을 생성할 수 있습니다.

Cron은 1분마다 깨어나 예약된 작업을 countable로 확인합니다. Crontab(CRON TABle)은 이러한 종류의 반복 작업을 예약할 수 있는 테이블입니다. .

도움말: 각 사용자는 작업을 생성, 수정 및 삭제할 수 있는 자신만의 crontab을 가질 수 있습니다. 기본적으로 cron은 사용자에 대해 활성화되어 있지만 /etc/cron.deny 파일에 항목을 추가하여 사용자를 제한할 수 있습니다.

리눅스의 크론탭

Crontab 파일은 한 줄에 명령으로 구성되어 있으며 실제로 공백이나 탭으로 구분된 6개의 필드가 있습니다. 처음 5개 필드는 작업을 실행하는 시간을 나타내고 마지막 필드는 명령을 나타냅니다.

  • 분(0-59 사이의 값 유지)
  • 시간(0-23 사이의 값 유지)
  • 날짜(1-31 사이의 값 유지)
  • 월(1-12 또는 Jan-Dec 사이의 값을 유지합니다. 각 월 이름의 처음 세 글자를 사용할 수 있습니다(예: Jan 또는 Jun<) /강하게>.)
  • 요일(0-6 또는 Sun-Sat 사이의 값을 유지합니다. 여기서도 각 요일 이름의 처음 세 글자(예: Sun 또는 Wed<)를 사용할 수 있습니다. /강하게>. )
  • 명령 – 예약하려는 /path/to/command 또는 스크립트입니다.

1. Crontab 항목 나열

현재 사용자에 대해 -l 옵션과 함께 crontab 명령을 사용하여 작업을 나열하거나 관리합니다.

crontab -l

00 10 * * * /bin/ls >/ls.txt

2. Crontab 항목 편집

crontab 항목을 편집하려면 아래 표시된 옵션에 -e를 사용하세요. 아래 예는 VI 편집기에서 예약된 작업을 엽니다. 필요한 사항을 변경하고 설정을 자동으로 저장하는 :wq 키 누르기를 중단하세요.

crontab -e

3. 사용자의 예약된 크론 작업 나열

-u(사용자) 및 -l 옵션을 사용하여 tecmint라는 특정 사용자의 예약된 작업을 나열하려면 (목록).

crontab -u tecmint -l

no crontab for tecmint

참고: 루트 사용자만 다른 사용자의 crontab 항목을 볼 수 있는 완전한 권한을 갖습니다. 일반 사용자는 다른 사용자를 볼 수 없습니다.

4. Crontab 항목 제거

주의: Crontab에서 -r 매개변수를 사용하면 Crontab의 확인 없이 전체 예약 작업이 제거됩니다. 사용자의 crontab을 삭제하기 전에 -i 옵션을 사용하세요.

crontab -r

5. Crontab을 삭제하기 전 프롬프트

-i 옵션을 사용하여 crontab을 실행하면 사용자의 crontab을 삭제하기 전에 사용자에게 확인 메시지가 표시됩니다.

crontab -i -r

crontab: really delete root's crontab?

6. 허용되는 특수문자(*, -, /, ?, #)

  • 별표(*) – 필드의 모든 값 또는 가능한 값을 일치시킵니다.
  • 하이픈(-) – 범위를 정의합니다.
  • 슬래시(/) – 첫 번째 필드 /10은 10분마다 또는 범위 증분을 의미합니다.
  • 쉼표(,) – 항목을 구분합니다.

7. 시스템 전체 크론 일정

시스템 관리자는 아래와 같이 미리 정의된 cron 디렉터리를 사용할 수 있습니다.

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

8. 특정 시간에 대한 작업 예약

아래 작업은 매일 오전 12:30/tmp에서 빈 파일과 디렉터리를 삭제합니다. crontab 명령을 수행하려면 사용자 이름을 언급해야 합니다. 아래 예에서는 루트 사용자가 크론 작업을 수행하고 있습니다.

crontab -e

30 0 * * *   root   find /tmp -type f -empty -delete

9. 공통 일정을 위한 특수 문자열

@reboot

시스템이 재부팅되면 명령이 실행됩니다.

@daily

하루에 한 번 또는 @midnight를 사용할 수 있습니다.

@weekly

일주일에 한 번.

@yearly

일년에 한 번. @annually 키워드도 사용할 수 있습니다.

동일한 항목을 사용하려면 cron 명령의 5개 필드를 키워드로 바꿔야 합니다.

10. 이중 앰퍼샌드(&&)를 사용한 여러 명령

아래 예에서는 command1과 command2가 매일 실행됩니다.

crontab -e

@daily <command1> && <command2>

11. 이메일 알림을 비활성화합니다.

기본적으로 cron은 cronjob을 실행하는 사용자 계정으로 메일을 보냅니다. 비활성화하려면 아래 예와 유사한 cron 작업을 추가하십시오. 파일 끝에 있는 >/dev/null 2>&1 옵션을 사용하면 /dev/null 아래의 cron 결과의 모든 출력이 리디렉션됩니다.

[root@tecmint ~]# crontab -e
* * * * * >/dev/null 2>&1

결론: 작업 자동화는 더 나은 방법으로 오류 없이 효율적으로 작업을 수행하는 데 도움이 될 수 있습니다. 자세한 내용은 터미널에 'man crontab' 명령을 입력하여 crontab 매뉴얼 페이지를 참조할 수 있습니다.


판권 소유. © Linux-Console.net • 2019-2024