본문 바로가기

OS/Linux

Linux - Crontab (크론탭)

728x90

Crontab

1. cron이란 :
    일정시간마다 프로그램을 자동으로 실행시키는 데몬입니다. (Windows 의 작업스케줄러와 유사함)
2. crond 설정
    크론(cron)의 설정은 /etc/crontab에서 합니다. (모든 계정으로 관리해야 할 경우)
  옵션
  -e : 설정된 파일을 새롭게 편집
  -r : 등록된 내용을 삭제
  -l  : 현재 등록된 내용을 본다
3. crontab 파일 형식
 ----------         ----------  ------------------------------------------------------
  필  드            의  미         범  위
 ----------         ----------  ------------------------------------------------------
  첫 번째            분                0-59
  두 번째            시                0-23
  세 번째            일                0-31
  네 번째            월                1-12
  다섯 번째        요일             0-7 (0 또는 7=일요일, 1=월, 2=화, ...)
  여섯 번째      명령어           실행할 명령을 한 줄로 쓴다.
  ----------         ----------  ------------------------------------------------------

 - 모든 엔트리 필드는 공백으로 구분된다.
 - 한 줄당 하나의 명령 (두줄로 나눠서 표시할 수 없음)
 - # 으로 시작하는 줄은 실행하지 않는다. // 주석처리
 - '*'표시는 해당 필드의 모든 시간을 의미한다.
 - 3,5,7와 같이 콤마(,)로 구분하여 여러 시간대를 지정할 수 있다.
 - 2-10와 같이 하이픈(-)으로 시간 범위도 지정할 수 있다.
 - 2-10/3와 같이 하이픈(-)으로 시간 범위를 슬래쉬(/)로 시간 간격을 지정할 수 있다(2~10시까지 3시간 간격으로. 즉, 3, 6, 9시를 의미함).

 


추가) cron등록하는 방법 순서대로 하면 됩니다.

1. # whereis php 명령어로 php가 있는 곳의 위치를 확인한다.
2. # crontab -e 명령어로 작업을 추가한다.
 ex)  */5 * * * * /usr/bin/php -q /var/www/html/test.php
 5분마다 php를 이용해서 해당 위치의 파일을 실행시키는 거다.
3. test.php의 소스 안에서는 include파일 같은 것은 실제 경로를 써준다.
4. # /etc/rc.d/init.d/crond restart 또는 service crond restart  // CentOS6 이하

4. # systemctl restart crond // CentOS7 이상
5. # crontab -l 명령어로 제대로 등록이 되었는지 살펴본다.
6. # tail /var/log/cron 명령어로 5분마다 제대로 실행이 되었는지 로그를 검사한다.

 ex) Feb  1 09:37:01 centos7 CROND[1975]: (root) CMD (/usr/bin/ls /root > 2)

 

 

추가) cron 인증 실패 시 

 FAILED to authorize user with PAM (Authentication token is no longer valid; new one required)
위와 같은 메세지가 cron 로그에 기록 되고 있었다.
문제는 예약 작업을 실행하는 사용자 계정의 비밀번호가 만료되어 발생한 문제로 비밀번호 변경 후 해결

 

728x90
반응형

'OS > Linux' 카테고리의 다른 글

Linux - 권한관리 (chmod, chown, chgrp)  (0) 2023.02.01
Linux - yum  (2) 2023.02.01
Linux - 언어설정 (locale)  (0) 2023.01.31
Linux - 런 레벨(Run level)  (0) 2023.01.31
Linux - 디렉토리 구조  (0) 2023.01.31