[linux] crontab 사용법

somnode·2020년 9월 27일
0

crontab은 리눅스에서 특정 시간에 예약 작업을 수행할 수 있도록 해준다.

crontab 작업 등록/삭제/확인

  • crontab에 작업 등록/삭제
    아래 명령을 수행하면 crontab에 작업을 등록할 수 있는 편집창이 열린다.
    작업 등록은 해당 작업을 입력하고 :wq를 입력하고 편집창을 나오면 등록된다.
    작업 삭제는 해당 작업의 내용을 삭제하고 :wq를 입력하고 편집창을 나오면 삭제된다.
> crontab -e
  • crontab에 등록된 작업 확인
> crontab -l

crontab 작업 등록 형식

crontab 작업은 [주기] [명령어] 형식으로 등록해야 한다.

  • 주기
    주기는 시간 요일의 다섯가지 순서의 형식을 갖는다.
    요일은 0부터 일요일이다.
*		   *		   *		  *		     *
분(0-59)   시간(0-23)   일(1-31)   월(1-12)   요일(0-6)

crontab 작업 예제

# 매주 토요일 오전 10시 0분에 /home/somnode/test.sh를 실행
0 10 * * 6 /home/somnode/test.sh

# 매주 토요일 오전 10시 0분, 20분, 40분에 /home/somnode/test.sh를 실행
0,20,40 10 * * 6 /home/somnode/test.sh

# 매주 토요일 오전 10시 0분부터 30분까지 매분 /home/somnode/test.sh를 실행
0-30 10 * * 6 /home/somnode/test.sh

# 매주 토요일 오전 10시 0분부터 매 10분마다 /home/somnode/test.sh를 실행
*/10 10 * * 6 /home/somnode/test.sh

crontab 작업 로그를 파일로 저장

* * * * * /home/somnode/test.sh > /home/somnode/test.log 2>&1

tmux 작업을 crontab 으로 등록

# /home/somnode/test.sh를 somm-test라는 tmux 세션 이름으로 설정하여 수행되도록 등록
* * * * * tmux new-session -ds somm-test /home/somnode/test.sh

screen 작업을 crontab 으로 등록

* * * * * screen -d -m /home/somnode/test.sh

crontab으로 실행 시 환경 변수가 shell로 실행할 때의 환경 변수와 다를 때

  • crontab에서 shell script 파일을 실행할 경우 PATH 환경변수가 달라서 환경변수를 찾지 못하는 문제가 발생한다.
  • shell script 파일 앞쪽에 아래 내용 추가
#!/bin/bash -l

0개의 댓글