본문 바로가기
Linux

리눅스 - Crontab 로그 남기는 방법 3가지(리다이렉션, syslog, cronolog)

by 올엠 2024. 2. 21.
반응형

Crontab은 유닉스 기반 시스템에서 주기적으로 명령을 실행할 수 있도록 해주는 유용한 도구입니다. 하지만 기본적으로 Crontab은 실행 결과에 대한 로그를 남기지 않기 때문에, 문제 발생 시 원인 파악이 어려울 수 있다.

따라서 Crontab 로그를 남기는 방법은 매우 중요하며, 크게 세 가지 방법으로 나눌 수 있다

1. 리다이렉션

가장 간단하고 일반적인 방법으로 간단히 많이 사용되는 방법이다.

리눅스는 > 와 >> 를 이용해서 화면 출력 내용(STDOUT)을  전달하는 것이 가능하며 이를 파일로 전달하는 방식으로 구성할 수 있다. 

명령어 뒤에 > 또는 2>&1 , >> 연산자를 사용하여 로그 파일을 지정할 수 있다.

오류 내용도 병합하고자 한다면, 2>&1를 추가로 기입해 주도록 하자.

 

각 의미를 보면 다음과 같다.

2>&1    : 표준 오류 출력(stderr)을 표준 출력(stdout)으로 병합

>>        : 로그 파일이 존재하면 추가, 존재하지 않으면 생성

>          : 로그 파일이 존재하면 삭제, 존재하지 않으면 생성

매일 01시에 backup.sh 스크립트 실행하고 로그를 /var/log/backup.log 파일에 저장

01 * * * * backup.sh >> /var/log/backup.log 2>&1

 

2. syslog

두번째 역시 많이 사용되는 방식으로써, 시스템 로그에 Crontab 로그를 기록하는 방식이다.

/etc/syslog.conf 파일을 편집하여 설정하면 된다.

Crontab 로그를 cron 태그로 local7 시설에 저장하자.

/etc/syslog.conf

cron.* /var/log/syslog

변경 사항을 저장하고 시스템을 재부팅하면 적용된다.

 

3. cronolog

마지막으로는 Crontab 로그를 관리하는 데 특화된 유틸리티를 활용하는 방법이다.

Crontab을 위한 로그 포맷, 로테이션, 필터링 등 다양한 기능을 제공한다.

설치:

sudo apt install cronolog

사용:

cronolog -F /var/log/crontab %Y-%m-%d %H:%M:%S -c "my_command"

Crontab 로그 설정 방법은 사용 환경에 따라 다를 수 있고, 추가로  로그 파일 권한 설정, 로그 용량 관리 등을 고려해서 설정하도록 하자.

반응형