안녕세계

[Linux] cron, crontab - 예약 실행 a.k.a. 리눅스용 작업 스케쥴러 본문

[Linux] cron, crontab - 예약 실행 a.k.a. 리눅스용 작업 스케쥴러

Junhong Kim 2018. 3. 9. 16:55
728x90
반응형

crond

  • 프로세스 예약 데몬
  • 리눅스용 작업 스케쥴러
  • 특정시간에 명령어가 수행되도록 등록 가능합니다.
  • cronie(패키지) = crond(크론 데몬) + crontab(크론 테이블)
  • 로그: /var/mail/[username]에 변경 및 수행 이력이 기록됩니다.
$ which cron /usr/sbin/cron
$ which crontab /usr/bin/crontab
$ cat /var/mail/[username]

crontab - form

* * * * * [명령어] ┬ ┬ ┬ ┬ ┬ │ │ │ │ └─ 요일 (0 - 6) (0:일요일, 1:월요일, 2:화요일, …, 6:토요일) │ │ │ └─ 월 (1 - 12) │ │ └─ 일 (1 - 31) │ └─ 시 (0 - 23) └─ 분 (0 - 59)

crontab - command

목록

현재 사용자

$ crontab -l no crontab for root

다른 사용자

$ crontab -l -u otheruser no crontab for otheruser

등록

현재 사용자에 대한 cron job 확인  수정을 할 수 있습니다.

$ crontab -e

삭제

현재 사용자의 cron job을 모두 삭제합니다.

$ crontab -r

crontab - example

매 1분 (00:01, 00:02, ...)

* * * * * ./cron.sh

매시 15분, 45분 (00:15, 00:45, 01:15, 01:45, ...)

15,45 * * * * ./cron.sh

10분마다 (00:10, 00:20, ...)

*/10 * * * * ./cron.sh

매일 02:00 [1회/Day]

0 2 * * * ./cron.sh

00:30부터 6시간마다 (00:30, 06:30, 12:30, 18:30)

30 */6 * * * ./cron.sh

01:30부터 6시간마다 (01:30, 07:30, 13:30, 19:30)

30 1-23/6 * * * ./cron.sh

평일(월-금) 08:00

0 8 * * 1-5

주말(일,토) 08:00

0 8 * * 0,6

Using example

  1. cron job(.sh)은 ~/bin 아래에 위치시키고, log 파일은 ~/log에 저장합니다.

NOTE: default는 ~  /Users/[username] 은 동일합니다.

  1. "Hello World" 를 hello.txt 파일에 기록하는 쉘을 만듭니다.

vi 편집기로 greet.sh 을 엽니다.

$ vi greet.sh

greet.sh에 아래 코드를 작성한 뒤 저장합니다.

echo "Hello World" >> ~/log/hello.txt
  1. 우리가 만든 쉘파일을 cron job 에 등록합니다.

cron table 편집하기 위해 다음 명령어를 입력합니다.

$ crontab -e

cron table 예약 시간 명령어을 입력합니다.

* * * * * sh /Users/INMA/bin/greet.sh

cron table 작성시 쉘파일 앞에 sh를 입력하지 않으려면 chomod로 퍼미션 허용해줘야 합니다.

$ chmod 755 cron.sh

[관련 포스팅]

[참고]


728x90
반응형

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

[Linux] Apache(CentOS) 설치  (0) 2018.04.10
[Linux] CentOS 명령어  (0) 2018.04.10
[Linux] CentOS 설치  (0) 2018.04.10
[Linux] hosts 파일  (0) 2018.04.02
[Linux] 파이썬 모듈 예약 실행 (with. cron & crontab)  (0) 2018.03.09
Comments