Linux crontab - 자동화 작업

리 눅 스에 서 작업 은 지 정 된 시간 대, 지 정 된 날짜, 또는 시스템 의 평균 적재량 이 지 정 된 수량 보다 적 을 때 자동 으로 실 행 될 수 있 습 니 다.빨 간 모자 기업 리 눅 스 는 시스템 이 수시로 업 데 이 트 될 수 있 도록 중요 한 시스템 작업 을 미리 설정 했다.예 를 들 어 locate 명령 에 의 해 사용 되 는 slocate 데이터 베 이 스 는 매일 업데이트 된다.시스템 관리 자 는 자동 화 된 임 무 를 사용 하여 정기 백업, 모니터링 시스템, 맞 춤 형 스 크 립 트 실행 등 을 수행 할 수 있다.
빨 간 모자 기업 리 눅 스 는 몇 가지 자동화 임 무 를 수행 하 는 도구: cron, at, batch.
37.1. cron
cron 은 시간, 날짜, 달, 요일 의 조합 에 따라 중복 작업 을 수행 할 수 있 는 데 몬 입 니 다.
cron 가정 시스템 이 지속 적 으로 작 동 합 니 다.만약 어떤 임무 가 스케줄 링 되 었 을 때 시스템 이 실행 되 지 않 는 다 면 이 임 무 는 실행 되 지 않 을 것 이다.
cron 서 비 스 를 사용 하려 면 vixie - cron RPM 패 키 지 를 설치 해 야 하고 crond 서 비 스 를 실행 해 야 합 니 다.이 패키지 가 설치 되 어 있 는 지 확인 하려 면 rpm - q vixie - cron 명령 을 사용 하 십시오.이 서비스 가 실행 중인 지 확인 하려 면/sbin/service crond status 명령 을 사용 하 십시오.
37.1.1. cron 퀘 스 트 설정
cron 의 주 프로필 은/etc/crontab 입 니 다. 다음 줄 을 포함 합 니 다.
SHELL=/bin/bash
            PATH=/sbin:/bin:/usr/sbin:/usr/bin
            MAILTO=root
            HOME=/
            # run-parts
            01 * * * * root run-parts /etc/cron.hourly
            02 4 * * * root run-parts /etc/cron.daily
            22 4 * * 0 root run-parts /etc/cron.weekly
            42 4 1 * * root run-parts /etc/cron.monthly

앞의 네 줄 은 cron 작업 실행 환경 을 설정 하 는 변수 입 니 다.SHELL 변수의 값 은 시스템 이 어떤 셸 환경 을 사용 해 야 하 는 지 알려 줍 니 다 (이 예 에서 bash 셸).PATH 변 수 는 명령 을 실행 할 경 로 를 정의 합 니 다.cron 작업 의 출력 은 MAILTO 변수 가 정의 하 는 사용자 이름 으로 보 냅 니 다.MAILTO 변수 가 공백 문자열 (MAILTO = ") 로 정의 되면 이메일 이 보 내지 않 습 니 다.HOME 변 수 는 명령 이나 스 크 립 트 를 실행 할 때 사용 할 홈 디 렉 터 리 를 설정 할 수 있 습 니 다.
/etc/crontab 파일 의 모든 줄 은 하나의 작업 을 대표 합 니 다. 그 형식 은:
minute   hour   day   month   dayofweek   command

 
  • minute - 분, 0 에서 59 사이 의 모든 정수
  • hour - 시간, 0 에서 23 사이 의 모든 정수
  • day - 날짜, 1 에서 31 사이 의 모든 정수 (월 을 지정 하면 해당 달의 유효기간 이 어야 함)
  • month - 월, 1 월 부터 12 월 사이 의 모든 정수 (또는 월 의 영어 약자, 예 를 들 어 jan, feb 등)
  • dayofweek - 주, 0 에서 7 사이 의 모든 정수, 이곳 의 0 또는 7 은 일요일 (또는 일요일 의 영어 약자, 예 를 들 어 sun, mon 등)
  • 을 대표 합 니 다.
  • command - 실행 할 명령 (명령 은 ls/proc >/tmp/proc 와 같은 명령 일 수도 있 고, 직접 작성 한 스 크 립 트 를 실행 하 는 명령 일 수도 있 습 니 다.)
  • 위의 모든 값 에서 별표 (*) 는 모든 유효한 값 을 대표 할 수 있 습 니 다.예 를 들 어 월 치 중의 별 번 호 는 다른 제약 조건 을 만족 시 킨 후에 매달 이 명령 을 집행 하 는 것 을 의미한다.
    정수 간 의 단선 (-) 은 정수 범 위 를 지정 합 니 다.예 를 들 어 1 - 4 는 정수 1, 2, 3, 4 를 의미한다.
    쉼표 (,) 로 구 분 된 일련의 값 으로 목록 을 지정 합 니 다.예 를 들 어 3, 4, 6, 8 은 이 네 개의 지 정 된 정 수 를 표시 한다.
    정사 선 (/) 은 간격 주파 수 를 지정 할 수 있 습 니 다.범위 뒤에/< integer > 를 더 하면 범위 내 에서 integer 를 뛰 어 넘 을 수 있 음 을 의미 합 니 다.예 를 들 어 0 - 59/2 는 분 필드 에서 2 분 마다 정의 할 수 있다.간격 주파수 값 은 별표 와 함께 사용 할 수 있다.예 를 들 어 */3 의 값 은 월 필드 에서 3 개 월 에 한 번 씩 작업 을 수행 하 는 것 을 표시 할 수 있 습 니 다.
    처음 우물 번호 (\#) 의 줄 은 주석 으로 처리 되 지 않 습 니 다.
    /etc/crontab 파일 에서 보 듯 이 run - parts 스 크 립 트 를 사용 하여/etc/cron. hourly,/etc/cron. daily,/etc/cron. weekly 와/etc/cron. monthly 디 렉 터 리 의 스 크 립 트 를 실행 합 니 다. 이 스 크 립 트 들 은 매 시간, 매일, 매주 또는 매달 실 행 됩 니 다.이 디 렉 터 리 의 파일 은 셸 스 크 립 트 일 것 입 니 다.
    만약 어떤 cron 작업 이 스케줄 에 따라 실행 되 어야 한다 면, 매 시간, 매일, 매주, 또는 매달 실행 되 는 것 이 아니 라,/etc/cron. d 디 렉 터 리 에 추가 할 수 있 습 니 다.이 디 렉 터 리 의 모든 파일 은/etc/crontab 와 같은 문법 을 사용 합 니 다.
    # record the memory usage of the system every monday
                # at 3:30AM in the file /tmp/meminfo
                30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
                # run custom script the first day of every month at 4:10AM
                10 4 1 * * /root/scripts/backup.sh

    예 37 - 1. crontab 의 예
    루트 사용자 이외 의 사용 자 는 crontab 도 구 를 사용 하여 cron 작업 을 설정 할 수 있 습 니 다.모든 사용자 가 정의 하 는 crontab 는/var/spool/cron 디 렉 터 리 에 저장 되 어 있 으 며, 사용자 신분 을 만 드 는 것 으로 실 행 됩 니 다.한 사용자 로 crontab 프로젝트 를 만 들 려 면 이 사용자 로 로그 인 한 다음 crontab - e 명령 을 입력 하고 VISUAL 이나 EDITOR 환경 변수 가 지정 한 편집기 로 사용자 의 crontab 를 편집 합 니 다.이 파일 은/etc/crontab 와 같은 형식 을 사용 합 니 다.crontab 에 대한 변경 사항 이 저장 되면 이 crontab 파일 은 사용자 이름 에 따라 저장 되 고 파일/var/spool/cron/username 에 기 록 됩 니 다.
    cron 데 몬 은 매 분/etc/crontab 파일, etc/cron. d/디 렉 터 리, 그리고/var/spool/cron 디 렉 터 리 의 변 화 를 검사 합 니 다.변 화 를 발견 하면 메모리 에 불 러 옵 니 다.이렇게 하면 어떤 crontab 파일 이 바 뀌 면 데 몬 을 다시 시작 할 필요 가 없습니다.
    37.1.2. cron 사용 제어
    /etc/cron. allow 와/etc/cron. deny 파일 은 cron 에 대한 사용 을 제한 하 는 데 사 용 됩 니 다.이 두 개의 제어 파일 을 사용 하 는 형식 은 모두 줄 마다 사용자 입 니 다.두 파일 모두 빈 칸 을 허용 하지 않 습 니 다.제어 파일 을 사용 하여 수정 되면 cron 데 몬 (crond) 을 다시 시작 할 필요 가 없습니다.제어 파일 을 사용 하면 사용자 가 cron 작업 을 추가 하거나 삭제 할 때마다 읽 습 니 다.
    제어 파일 의 규정 을 사용 하 든 루트 사용 자 는 항상 cron 을 사용 할 수 있 습 니 다.
    cron. allow 파일 이 존재 한다 면 목록 에 있 는 사용자 만 cron 을 사용 할 수 있 고 cron. deny 파일 은 무 시 됩 니 다.
    cron. allow 파일 이 존재 하지 않 으 면 cron. deny 에 열 거 된 모든 사용자 가 cron 을 사용 하지 못 합 니 다.
    37.1.3. 서비스 시작 과 정지
    cron 서 비 스 를 시작 하려 면/sbin/service crond start 명령 을 사용 하 십시오.이 서 비 스 를 중단 하려 면/sbin/service crond stop 명령 을 사용 하 십시오.안내 할 때 이 서 비 스 를 시작 하 는 것 을 추천 합 니 다.
     
    ZT:http://www.eygle.com/digest/2006/01/hwoto_linux_crontab.html

    좋은 웹페이지 즐겨찾기