도커 컨테이너로 ubuntu 기본 이미지를 사용해서 crontab을 처음에 설정할때 안되는 경우가 있다.
1. rsyslog 부재
기본적으로 ubuntu 에선 rsyslog를 가지고 로그를 찍는데 순수 ubuntu 이미지엔 이게 없을 수 있다.있는지 없는지는 다양한 방법으로 알 수 있지만 /etc/rsyslog.conf 가 없으면 없는것으로 봐도 무방한것 같다.install 해주자
apt install rsyslog
# service로 재실행
service rsyslog restart
# 직접 재실행
rsyslogd
rsyslog: unrecognized service
service rsyslog resatrt했는데 이거 뜨면 service에 등록이 안된건지 왜 그런건진 모르겠다.
rsyslogd로 직접 실행시켜주면 잘된다.
2. postfix 부재
crontab이 돌면 시스템이 자동으로 postfix로 메일을 보낸다.
그래서 postfix가 없으면 에러가 난다. install 해주자.
apt install postfix
메일 안보냄 처리 MAILTO=""
기본적으로 crontab 파일에 mailto가 없을 경우 보내는게 기본값이다.
안보낼 경우 공백처리하면 안보낸다. crontab 문서 어딘가에 적어주자
# crontab -e
MAILTO=""
https://24hours-beginner.tistory.com/431
그러고도 안된다?
시간이나 문법과 코드 자체가 틀렸을 수 있다.
일단 아래와 같은 코드가 crontab을 작성해놨다고 하였을 때
0 5 * * * tar -zcf /var/backups/home.tgz /home/ >> /home/log/logfile.log 2>&1
1. 실제 실행 명령만 실행시켜서 되는지 확인한다.
tar -zcf /var/backups/home.tgz /home/
2. 로그파일 작성하는곳의 권한이 있는지 확인한다.
간혹가다가 폴더가 없거나 권한이 없으면 안되므로 폴더를 만들어주면서 권한도 확인하자
3. 시간대를 확인하자
예를들어 현재 0 5 * * * 이면 5시 0분에 한번씩 실행한다는것인데
우리 도커와 서버의 시간은 다를 수 있다.
기본적으로 설정 등을 안했을 경우 utc-0 인데 한국 시간으로 적으면 시차 차이로 실행되지 않을 수 있다.
date로 현재 설정된 시간과 내가 설정한 시간이 맞는지 확인하자
crontab 설정
https://24hours-beginner.tistory.com/210
'프로젝트 설정 > Docker' 카테고리의 다른 글
[Docker] Docker compose install error (feat. docker-compose와 docker compose) (0) | 2025.01.15 |
---|---|
[Docker] Docker run (0) | 2023.12.21 |
[Docker] Docker installation on Ubuntu 20.04 (0) | 2023.04.21 |
[Docker] Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (feat. ubuntu) (0) | 2023.03.03 |
[Docker] MariaDB install 1 (feat. running container) (0) | 2023.02.21 |