본문 바로가기

운영체제/리눅스

[리눅스] cron crontab 명령어(예약된작업, 백업 등)

리눅스 예약된 작업 명령어 - cron, crontab 명령어

리눅스 OS관리 특정 작업을 반복적으로 수행해야 할 경우가 있다.

사람이 매일 같은 명령어를 설정할 수 없으니 보통 cron을 이용하여 예약된 작업을 수행하도록 지정하여 준다.



윈도우의 예약된 작업과 같은 명령어라고 볼 수 있다.

주로 스크립트를 특정한 시간에 실행하도록 하여,

백업, 시간동기화 등의 작업을 수행하도록 하여준다.


설정하기에 따라 쉘 명령어, 이메일보내기 등 다양한 작업을 할 수 있다.


Crontab은 계정별로 관리된다.



crontab [option]


주요옵션

리눅스 버전에 따라 옵션이 차이가 있을 수 있음.


 옵션

설명

-l

 현재 계정의 설정된 crontab 정보를 보여준다.

-e

 현재 계정의 crontab 정보를 수정한다.(vi 편집창이 열림)

-r

 현재 계정의 crontab 정보를 모두 삭제한다.

-u

 특정 사용자의 crontab 정보를 다루게 해준다.(root에서만 사용 가능)



등록형식

분(0~59) 시(0~23) 일(1~31) 월(1~12) 요일(0~6) (사용자명) 명령어


ex1. 30 1 1 * * /home/test/test.sh -> 매월 1일 1:30에 /home/test 경로의 test.sh를 실행한다.

ex2. 0,30 1 * * 0 /home/test/test.sh -> 매일 일요일 1:00, 1:30에 /home/tset 경로의 test.sh를 실행한다.

각 형식은 뛰어쓰기로 구분하며, 콤마을 통해 2가지 이상 시간을 표현할 수도 있다.


*는 모든 값을 의미

요일은 0: 일요일, 1: 월요일, ..., 6:토요일

사용자명은 생략가능


#뒤에는 주석처리 됨


사용방법 및 사용예시


1. "crontab -e" 명령어를 치면 vi편집창이 나오는데 이 창에 실행할 명령어를 등록한다.



2. 

crontab은 라인 단위로 실행된다.

아래 그림처럼 실행하고자 하는 명령어를 등록형식에 따라 순서대로 적어주면 되고,

가독성을 위해 주석으로 설명을 적어주는 것이 좋다.


3.

저장하고 빠져 나오면 적용이 완료되고,

crontabl -l로 리스트를 확인해보면 내가 등록한 명령어들이 나온다.