검색

24장. 시스템 작업 자동화

download PDF

작업이라고도 하는 작업을 자동으로 실행하도록 Red Hat Enterprise Linux를 구성할 수 있습니다.

이 장에서는 이러한 작업을 수행하는 방법을 설명합니다.

24.1. Cron을 사용하여 반복 작업 예약

cron 은 작업(일반적으로 작업이라고 함)을 예약할 수 있는 서비스입니다. cron 작업은 시스템이 예약된 시간에 실행되는 경우에만 실행됩니다. 시스템이 부팅될 때 실행을 연기할 수 있는 작업을 예약하려면 시스템이 실행 중이 아닌 경우 작업이 "lost"가 아닌 경우 24.3절. “at를 사용하여 특정 시간에 실행되도록 작업 예약” 을 참조하십시오.

사용자는 crontab 파일이라고도 하는 cron 테이블 파일에 cron 작업을 지정합니다. 그런 다음 이러한 파일은 작업을 실행하는 crond 서비스에서 읽습니다.

24.1.1. Cron 작업 사전 요구 사항

cron 작업을 예약하기 전에 다음을 수행합니다.

  1. cronie 패키지를 설치합니다.

    ~]# yum install cronie
  2. crond 서비스가 활성화되어 있습니다. - 설치 시 부팅 시 자동으로 시작됩니다. 서비스를 비활성화한 경우 다음을 활성화합니다.

    ~]# systemctl enable crond.service
  3. 현재 세션에 대해 crond 서비스를 시작합니다.

    ~]# systemctl start crond.service
  4. (선택 사항) cron 을 구성합니다. 예를 들어 다음과 같이 변경할 수 있습니다.

    • 작업 실행 시 사용할 쉘
    • PATH 환경 변수
    • 이메일 주소: 작업이 이메일을 보내는 경우.

      cron 구성에 대한 자세한 내용은 crontab(5) 도움말 페이지를 참조하십시오.

24.1.2. Cron 작업 예약

작업을 root 사용자로 예약

루트 사용자는 /etc/crontab 의 cron 테이블을 사용하거나, 바람직하게는 /etc/cron.d/ 에 cron 테이블 파일을 생성합니다. 작업을 root 로 예약하려면 다음 절차를 사용하십시오.

  1. 선택 사항:

    • 작업을 실행할 시간(분)입니다. 예를 들어, 0,10,20,30,40,50 또는 0/10을 사용하여 시간 10분마다 지정합니다.
    • 작업을 실행할 하루 중 시간(일)입니다. 예를 들어 17-20 을 사용하여 17:00에서 20:59로 시간을 지정합니다.
    • 작업을 실행할 월의 일 수입니다. 예를 들어 15 를 사용하여 한 달의 15일을 지정합니다.
    • 작업을 실행할 1년 중 1개월은 어떻게 됩니까. 예를 들어 Jun,Jul,Aug 또는 6,7,8 을 사용하여 해당 연도의 여름 개월을 지정합니다.
    • 작업을 실행할 요일입니다. 예를 들어 작업에 * 를 사용하여 요일과 독립적으로 실행합니다.

      선택한 값을 시간 사양에 결합합니다. 위의 예제 값의 결과는 이 사양입니다.

      0,10,20,30,50 17-20 15 Jun,Jul, Aug *

  2. 사용자를 지정합니다. 작업은 이 사용자가 실행하는 것처럼 실행됩니다. 예를 들어 루트 를 사용합니다.
  3. 실행할 명령을 지정합니다. 예를 들어 /usr/local/bin/my-script.sh를 사용하십시오.
  4. 위의 사양을 한 줄로 설정합니다.

    0,10,20,30,40,50 17-20 15 Jun,Jul,Aug * root /usr/local/bin/my-script.sh
  5. 결과 행을 /etc/crontab 에 추가하거나 바람직하게는 /etc/cron.d/ 에 cron 테이블 파일을 만들고 여기에 행을 추가합니다.

이제 작업이 예약된 대로 실행됩니다.

작업을 지정하는 방법에 대한 전체 참조는 crontab(5) 매뉴얼 페이지를 참조하십시오. 기본 정보는 /etc/crontab 파일의 시작을 참조하십시오.

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
작업이 non-root 사용자로 예약

루트가 아닌 사용자는 crontab 유틸리티를 사용하여 cron 작업을 구성할 수 있습니다. 해당 사용자가 실행한 것처럼 작업이 실행됩니다.

특정 사용자로 cron 작업을 생성하려면 다음을 수행합니다.

  1. 사용자 쉘에서 다음을 실행합니다.

    [bob@localhost ~]$ crontab -e

    그러면 VISUAL 또는 EDITOR 환경 변수에서 지정한 편집기를 사용하여 사용자 고유의 crontab 파일을 편집하기 시작합니다.

  2. “작업을 root 사용자로 예약” 과 동일한 방식으로 작업을 지정하고 사용자 이름으로 필드를 남겨 둡니다. 예를 들어, 추가하는 대신

    0,10,20,30,40,50 17-20 15 Jun,Jul,Aug * bob /home/bob/bin/script.sh

    추가:

    0,10,20,30,40,50 17-20 15 Jun,Jul,Aug * /home/bob/bin/script.sh
  3. 파일을 저장하고 편집기를 종료합니다.
  4. (선택 사항) 새 작업을 확인하려면 다음을 실행하여 현재 사용자의 crontab 파일의 내용을 나열합니다.

    [bob@localhost ~]$ crontab -l
    @daily /home/bob/bin/script.sh
일정 시간(Hourly, day, Weekly, Monthly)

hourly, daily, weekly 또는 monthly 작업을 예약하려면 다음을 수행합니다.

  1. 작업을 실행할 작업을 쉘 스크립트에 배치합니다.
  2. 쉘 스크립트를 다음 디렉터리 중 하나에 배치합니다.

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

이제 스크립트가 실행됩니다. crond 서비스는 /etc/cron.hourly,/etc/cron.daily,/etc/cron.weekly, /etc/cron.monthly 디렉터리에 있는 모든 스크립트를 자동으로 실행합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.