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 로그 설정 방법은 사용 환경에 따라 다를 수 있고, 추가로 로그 파일 권한 설정, 로그 용량 관리 등을 고려해서 설정하도록 하자.
'Linux' 카테고리의 다른 글
리눅스 - 1-1024 PORT(Well-Know-Ports) 사용방법 3가지(SetUid, IPTables, Capabilities) (0) | 2024.02.21 |
---|---|
CentOS - Network Bonding 이해 및 설정 방법 (1) | 2024.02.21 |
CentOS7 - 고정 IP 설정하기 (0) | 2024.02.20 |
Letsencrypt - renew(갱신) 오류 해결 (0) | 2024.02.20 |
Docker - Docker Network, 컨테이너 간 통신하기 (0) | 2024.02.19 |