콘텐츠로 이동

필요 사항

  • Rocky Linux가 설치된 컴퓨터.
  • 명령 줄 환경에서 설정 파일을 변경하기 위해 선호하는 편집기를 사용하는 방법을 알아야 합니다 (이 문서에서는 vi를 사용합니다).
  • bash, python 또는 기타 스크립트 또는 프로그래밍 도구에 대한 기본 지식을 이해했으며 스크립트를 자동으로 실행해야 합니다.
  • SSH를 통해 컴퓨터에 연결되어 있어야 합니다 (root 사용자이거나 UID가 1000보다 큰 일반 사용자일 수 있음).

cron 소개

GNU/Linux는 자동화된 프로세스를 위한 시간 기반 cron 작업 프로그램인 cron 시스템을 제공합니다. 이는 어렵지 않지만 매우 강력한 기능을 가지고 있습니다. 매일 오후 5시에 스크립트나 프로그램을 실행하고 싶은가요? cron이 가능합니다. cron에는 동일한 기능을 제공하는 다른 브랜치(또는 변형)들이 있습니다. 이 문서에서는 cronie를 사용하며 버전은 1.5.2입니다. 최신 버전과 업데이트 로그를 확인하려면 여기를 클릭하세요.

cronie 설명

  • cronie - 패키지 이름으로, Rocky Linux는 기본적으로 cronie를 포함하고 있습니다.
  • crontab - 각 사용자의 crontab(작업 일정)을 유지하는 명령입니다.
  • crond.service - cronie의 데몬, systemctl start | restart | stop | status를 사용하여 데몬을 관리할 수 있습니다.
  • /etc/crontab - 다른 사용자에게 cron 작업을 할당하는 파일입니다. 보통은 crontab -e를 사용하는 것이 일반적입니다. 예를 들어, 현재 root 사용자로 로그인한 경우, crontab -e를 입력하고 저장한 후에는 /var/spool/cron/root 파일에 특정한 cron 작업이 표시됩니다.
  • /var/log/cron * - cronie의 로그입니다. 기본적으로 로그 회전을 수행하며 날짜 접미사가 붙습니다. *는 와일드카드를 의미합니다.
  • anacron - cronie의 일부. anacron에 대한 자세한 내용은 anacron 자동화 명령을 참조하세요.

crontab 명령

crontab은 cronie 패키지 설치 후 얻은 명령입니다. anacron에 비해 7 * 24시간 작동하는 서버에 더 적합합니다. crontab의 일반적인 옵션은 다음과 같습니다.

-e # crontab 예약된 작업을 편집합니다. -l # crontab 작업을 보여줍니다. -r # 현재 사용자의 모든 crontab 작업을 삭제합니다.

cronie 사용

여러 사용자가 서로 다른 시간에 서로 다른 명령어(또는 스크립트)를 실행할 수 있도록 이 파일에 작성할 수 있습니다. 그러나 일반적으로는 crontab -e를 사용하는 것이 일반적입니다.

shell > cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# 자세한 내용은 man 4 crontabs를 참조하세요. # 작업 정의 예시:
# .---------------- 분 (0-59)
# | .------------- 시 (0-23)
# | | .---------- 일 (1-31)
# | | | .------- 월 (1-12) OR jan,feb,mar,apr ...
# | | | | .---- 요일 (0-6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * 사용자명 실행할 명령어
변수 값 범위
The 1st* 0-59
The 2nd* 시간 0-23
The 3rd* 1-31
The 4th* 1-12
The 5th* 요일 0-7(0과 7은 모두 일요일을 나타냄)

다음 예에서는 root 사용자로 이 작업을 수행한다고 가정하고 다음을 입력합니다.

  • crontab -e 루트 사용자의 시간 제한 작업을 불러옵니다. vi를 기본 시스템 편집기로 사용하는 경우 i 키를 눌러 삽입 모드로 들어갑니다.
  • "#"은 한 줄의 주석임을 의미합니다.
# 야간 10시 백업 시스템
00 22 *  *  * /usr/local/sbin/backup
  • 위의 내용을 입력했으면(다시 vi가 시스템 편집기라고 가정) ESC를 눌러 삽입 모드를 종료합니다.
  • SHIFT+:+wq!(편집기 하단에 표시됨)를 사용하여 파일을 저장하고 종료합니다.

이제 스크립트는 매일 밤 22:00에 실행됩니다. 이것은 단순한 예입니다. 더 정교한 것이 필요하면 상황이 더 복잡해질 수 있습니다.

Attention

cronie가 스크립트를 실행하려면 스크립트에 실행 권한(chmod +x)이 있어야 합니다.

복잡한 옵션

지금까지 논의된 내용은 단순한 옵션이지만 더 복잡한 시간 제한 작업은 어떻습니까?

# 매 10분마다 백업 스크립트를 실행하려고 가정해 봅시다 (실용적인 것은 아니지만, 예제입니다!). 하루 종일. 이를 위해 다음과 같이 작성합니다:
* /10 *  *  *  * /usr/local/sbin/backup
# 매주 월요일, 수요일, 금요일마다 10분마다 백업을 실행하고 싶다면 다음과 같이 작성합니다:
* /10 *  *  * 1,3,5 /usr/local/sbin/backup
# 토요일과 일요일을 제외한 매일 10분마다 백업하려면 다음과 같이 작성합니다:
* /10 *  *  * 1-5 /usr/local/sbin/backup :
* /10 *  *  * 1,3,5 /usr/local/sbin/backup
# 토, 일 외에 10분에 한번씩 매일 백업하는 방법은?
* /10 *  *  * 1-5 /usr/local/sbin/backup
특수 기호
* 임의의 시간을 나타냅니다. 예를 들어, 첫 번째 는 임의의 분을 나타내고, 두 번째 는 임의의 시간을 나타냅니다.
, , 불연속적인 시간을 나타냅니다. 예를 들어, "0 8,12,16 * * *"는 매일 오전 8시, 오후 12시, 오후 4시에 명령이 실행됨을 의미합니다.
- 연속적인 시간 범위를 나타냅니다. 예를 들어, "0 5 * * 1-6"는 월요일부터 토요일까지 매일 오전 5시에 명령이 실행됨을 의미합니다.
*/n 일정한 간격으로 실행할 때 사용됩니다. 예를 들어, "/10 * * *"는 10분마다 실행됨을 의미합니다.

Attention

cronie가 인식할 수 있는 가장 작은 시간 단위는 1분입니다. 예를 들어, 30 4 1,15 * 5 명령은 매월 1일과 15일, 매주 금요일 새벽 4시 30분에 실행됩니다. 일부 스크립트나 명령의 출력 정보가 타이밍 작업의 실행을 방해할 수 있으므로 출력 리디렉션이 필요합니다. 예를 들어, */10 * * * * /usr/local/sbin/backup &> /dev/null와 같이 사용합니다.

Q & A

  1. /etc/crontab과 crontab -e 사이에 어떤 차이가 있나요? crontab -e는 사용자를 지정할 필요가 없습니다 (기본적으로 현재 로그인한 사용자를 사용합니다). 그러나 /etc/crontab은 사용자를 지정해야 합니다.
  2. 지정된 명령이나 스크립트가 올바르게 실행되지 않는 경우 어떻게 해야 하나요? /var/log/cron* 파일을 확인하고, journalctl -u crond.service를 사용하여 데몬 프로세스에 대한 정보를 확인하고, 스크립트가 x 권한을 가지고 있는지 등을 확인하여 문제를 해결합니다.
  3. cron 외에 어떤 cron 변형이 있나요? dcron , 최신 버전은 4.5(2011-50-01)입니다. fcron , 최신 버전은 3.3.0(dev, 2016-08-14)입니다. bcron , 최신 버전은 0.11(2015-08-12)입니다. cronsun , 최신 버전 0.3.5(2018-11-20).

요약

Rocky Linux 데스크톱 사용자 또는 시스템 관리자에게 cronie는 매우 강력한 도구입니다. 작업 및 스크립트를 자동화할 수 있으므로 수동으로 실행해야 하는 것을 기억할 필요가 없습니다. 기본 지식은 어렵지 않지만 실제 작업은 복잡할 수 있습니다. crontab에 대한 자세한 내용은 crontab 매뉴얼 페이지를 방문하세요. 또한 인터넷에서 "crontab"을 검색하면 많은 검색 결과를 제공하고 crontab 표현식을 미세 조정하는 데 도움이 됩니다.

Author: tianci li

Contributors: Steven Spencer