본문 바로가기
OS/LINUX

crontab 사용법 리눅스 예약작업 반복작업

by itengineer 2020. 5. 29.
반응형

1. crontab 이란?

간단히 말해 등록한 시간에 자동으로 명령을 실행해주는 unix계 데몬입니다.
로그 로테이션이나 백업 등 정기적으로 자동 수행하는 경우 많이 사용하며, 백업 같은 작업은 시스템에 부하가 크기 때문에 일반적으로 cron을 이용해 사용자의 액세스가 적은 늦은 밤이나 새벽에 이루어집니다.


2. crontab 옵션

crontab -u user  crontab 사용자 지정(root 사용자가 특정 사용자의 crontab파일을 다룰 때 사용)

crontab -e  crontab 파일을 작성하거나 편집

crontab -l   crontab -e 에서 설정한 내용 표시

crontab -r   crontab 파일 삭제

crontab -i   crontab -r 과 똑같지만 삭제하기 전에 예/아니오 확인 메시지 표시


3. cron 설정 방법

crontab -e 명령어로 설정파일 편집

crontab -e

분 시 일 월 요일 실행 명령어  순으로 설정 가능합니다.

요일 실행 명령어
0~59 0~23 1~13 1~12 0~7 ex) backup.php

요일 설정은 0~7 까지 입력 가능합니다. 

0 or 7 1 2 3 4 5 6

매일 오전4시에 백업 파일을 실행하는 명령어를 작성해봅시다.

설정 후 :wq로 저장해줍니다

00 4 * * * php /var/www/bin/backup.php

 

crontab -l 로 확인하기

crontab -e 에서 설정한 내용이 그대로 표시됩니다.

crontab -l
00 4 * * * php /var/www/bin/backup.php

 


4. 사용 예제

* , - / 를 이용해서 원하는 시간 설정이 가능합니다.

  • 매분 실행
# 매분 마다 실행
* * * * * /var/www/test.sh

 

  • 특정 시간 실행
# 매주 월요일 오전 4시 10분에 실행
10 4 * * 1 /var/www/test.sh

# 매월 1일 5시에 실행
00 5 1 * * /var/www/test.sh

# 매년 1월 1일 4시에 실행
00 4 1 1 * /var/www/test.sh

 

  • 반복 실행
# 매시간 0분,20분, 40분에 실행
0,20,40 * * * * /var/www/test.sh

# /를 사용해서 설정(20분 마다 실행)
*/20 * * * * /var/www/test.sh

 

  • 범위 실행
# 매일 3시부터 3시 30분까지 매분 실행
0-30 3 * * * /var/www/test.sh

 

  • 특정 여러 시간 실행
# 1일에서 3일까지 3시 4시 5시에 20분 마다 실행
*/20 3,4,5 1-3 * * /var/www/test.sh

 


5. crontab 로그

crontab 실행 로그

# crontab 로그 확인
cat /var/log/cron

# 실시간 로그 확인
tail -f /var/log/cron

 

실행결과를 특정 파일에 저장하기

# /var/www/result.txt 파일에 저장하기
* * * * * /var/www/test.sh > /vaw/www/result.txt 2>&1

# 로그 남기지 않기
* * * * * /var/www/test.sh > /dev/null 2>&1
반응형

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

at 명령어 사용법 linux 예약작업  (0) 2020.06.02
NFS 파일공유 폴더공유 리눅스  (0) 2020.05.22

댓글