'리눅스' 시리즈crontab

김학진

@mildsalmon

흔치않고, 진귀하다.

Intro

Crontab 은 특정 시간에 특정 작업을 해주는 리눅스 스케줄러이다.

주요 명령어 (options)

-u

crontab -u

define user

user 사용자에 대해서 크론탭을 수행한다. 생략하면 크론탭 명령을 실행하는 사용자에 대해서 크론탭 수행

-e

crontab -e

edit user's crontab

VIM을 사용하여 크론탭을 편집한다.

수정 후 할일
service crond stop
service crond start

크론을 재시작 해줘야한다.
restart는 사용이 안되는듯하다.
정상적으로 재시작이 되었는지 확인하기 위해서는 service crond status로 확인하면 된다.
Active : active (running) ~~ 이렇게 뜰꺼임

-l

crontab -l

list user's crontab

cat 명령어 처럼 크론탭에 저장된 명령어(작업목록)를 출력한다.

-r

crontab -r

delete user's crontab

크론탭의 내용을 모두 삭제한다.

등록 형식

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

예시

매 1분마다 작업 수행
* * * * * /Hi/Hi.sh

1, 2, 3, 4, 5 ...

매시 15분, 45분에 작업 수행
15,45 * * * * /Hi/Hi.sh

00:15, 00:45, 01:15, 01:45 ...

10분마다 작업 수행
*/10 * * * * /Hi/Hi.sh

10, 20, 30, 40 ...

매일 2:00에 작업 수행
0 2 * * * /Hi/Hi.sh

2:00, 2:00

매 6시간마다 작업 수행
30 */6 * * * /Hi/Hi.sh

00:30, 6:30, 12:30 ...

1시부터 매 6시간마다 작업 수행
30 1-23/6 * * * /Hi/Hi.sh

1:30, 7:30, 13:30 ...

월-금요일 8:00에 작업 실행
0 8 * * 1-5 /Hi/Hi.sh

월 08:00, 화 08:00 ...

주말 08:00에 작업 실행
0 8 * * 0,6 /Hi/Hi.sh

토 08:00, 일 08:00 ...

로그

작업 명령 등록시

crontab -e

위 명령어로 크론탭 편집에 들어간다.

*/10 * * * * /Hi/Hi.sh > /Hi/Hi.log 2>&1
*/10 * * * * /Hi/Hi.sh >> /Hi/Hi.log 2>&1

이렇게 하면 Hi.sh 파일 실행의 출력 내용과 에러가 담긴다.
> 이 화살표가 한개면 파일을 실행 시킬때마다 log를 새로 작성한다.
>> 이렇게 두개면 이전 내용 다음에 이어서 작성된다.

/dev/null 2>&1

/dev/null 2>&1 명령어 처리결과 그리고 발생할지 모르는 에러메세지를 출력하지 않고 모두 다 버린다는 의미이다.

2 : 표준 에러

: 리다이렉트
&1 : 표준 출력

/dev/null 2>&1은 표준 에러가 발생하면 /dev/null에다 리다이렉트로 표준 출력해라.

고로. 에러를 보고 싶으면 /dev/null 대신에 /Hi/Hi.log 처럼 파일명을 적어주면 된다.

기본 로그

vim /var/log/cron

주의사항

크론탭에 입력하는 작업 명령은 꼭 한줄로 작성해야한다.

참고문헌

리눅스 크론탭(Linux Crontab) 사용법, "https://jdm.kr/blog/2", [JDM's Blog]

리눅스 cron - 작업 예약 명령, "https://webdir.tistory.com/174", [WEBDIR]

리눅스 반복 예약작업 cron, crond, crontab, "https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EB%B0%98%EB%B3%B5_%EC%98%88%EC%95%BD%EC%9E%91%EC%97%85_cron,_crond,_crontab", [ZETAWIKI]

[Linux] crontab 사용법, "https://includestdio.tistory.com/31", [includestdio]

Crontab 설정 및 로그 - 스케줄링하기, "https://ourcstory.tistory.com/63", 불로

cron(crontab) 실행 로그 남기기2, "https://blog.work6.kr/321", [WORK6]

crontab 사용법 및 log, "https://loveroid.tistory.com/57", [sgawn james]

[Linux] 쉘스크립트 crontab 동작시 /dev/null 2>&1 효과, "http://blog.daum.net/_blog/BlogTypeView.do?blogid=04kqb&articleno=15418625&categoryId=736857&regdt=20171113114402", [삽돌이]

'리눅스' 시리즈

이 시리즈에 대한 설명이 없습니다.
    😥 작성된 댓글이 없습니다!
    댓글을 작성하기 위해 로그인이 필요합니다.