Linux Cron 과 Crontab 을 이용한 작업스케쥴

# cron 은 일정시간마다 시스템이 자동으로 실행시키는 데몬이다.
# crontab 은 cron 등록,삭제등의 작업을 한다.
# cron 데몬의 시작/종료/상태/재시작... 등
/etc/rc.d/init.d/crond [start/stop/status/restart ...]

# cron 데몬에 등록된 목록 보기
crontab -l

# crontab 편집기는 $EDITOR 와 $VISUAL 환경변수에 설정된 에디터를 사용하게 된다.
# 기본 편집기 vim 으로 변경하기(.bashrc 등에 추가)
export EDITOR=vim
export VISUAL=vim

# cron 에 등록된 내용 편집
crontab -e

# 참고로 crontab 에서는 쉘 환경변수를 상속하지 않기때문에 별도록 지정해야 한다.
SHELL=/bin/bash
JAVA_HOME=/usr/java/jdk1.6.0_10
PATH=/sbin:/bin:/usr/sbin:/usr/bin:$JAVA_HOME/bin:

# 분(0~59) 시(0~23) 일(1~31) 월(1~12) 요일(1:월요일~7:일요일) 실행할명령어
# 매월 10일 0시 마다 test를 실행하려면
0 0 10 * * /home/ysoftman/test

# 2시간마다 test를 실행하려면
0 */2 * * * /home/ysoftman/test

# 현재 등록된 cron job 모두 삭제
crontab -r

# 'ysoftman' 이 포함된 job 만 삭제
# alias grep='grep -n' 로 라인번호가 출력되면 crontab 등록이 안된다.
crontab -l | /usr/bin/grep -v 'ysoftman' | crontab

# 또는 grep alias 무시
crontab -l | \grep -v 'ysoftman' | crontab

# cron 로그
vi /etc/log/cron (로그 설정은 /etc/syslog.conf)

# cron 작업은 다음 위치에 저장된다.
/etc/cron.daily
/etc/cron.deny
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly

# macOS 터미널에서 crontab -e 설정시 다음과 같은 에러가 발생한다면
"operation not permmited"

# 다음 화면과 같이  system preferences -> security & privacy -> privacy 에서 iterm2 를 추가해준다.


# 그리고 macOS 에는 sleep 모드에선 cron 이 작동하지 않는다.
# system preferences -> energy saver 에서 디스플레이가 꺼져도 잠자기 않도록 해야 한다.


comments:

댓글 쓰기