ETCLinux

ubuntu에서 cron이 정상 작동하지 않을 경우

우분투에서 crontab 으로 shell script 를 등록하였는데 정상작동 하지 않아 그 원인을 찾기 위해 알아본 방법을 정리 한다.

우분투에서는 /var/log/cron 폴더에 cron 로그가 생기지 않는다. 대신에 /var/log/syslog 로그에 cron 실행에 대한 부분이 남는다. 정상적으로 등록된 스크립트가 작동되면 아래와 같이 실행 결과가 남는다.

만약 실행 중 문제가 발생 한다면 해당 스크립트 하단에 메시지가 출력된다. 아래 와 같다.

No MTA installed, discarding output 에러는 crontest.sh 파일과는 관련 없는 에러이다. 하지만 이 에러로 인하여 cron 전체가 정상적으로 작동 하지 않았다.

해당 문제는 postfix 를 설치 하면 해결된다.

sudo apt-get install postfix

postfix 라는 놈은 메일을 발송하기 위한 프로그램인데 정확하게 무엇을 하는것인지는 모르겠다.

설치하면 설정을 하라는 화면이 나오는데 그냥 설정안함 처리 하고 설치 하였다.

아 무래도 메일 발송을 위한 프로그램인거 같은데 별도의 메일 프로그램을 사용하고 있고 해당 프로그램을 통하여 정상적으로 메일을 발송 하고 있기 때문에 굳이 세팅할 필요를 느끼지 못하였다. 또한 세팅시 도메인에 관한 부분을 넣는데 왠지 잘못된 도메인을 넣으면 안될 꺼 같고 개인적으로 사용하는 노트북인데 도메인이 있으리 만무 하지 않는가.

아무래도 우분투 기본 계정의 아이디 패스워드로 특정 도메인의 메일 시스템을 이용하려는 듯 보여 세팅하지 않았다.

해당 문제의 해결로 몇달전부터 onedrive-d 데몬을 감시 하기 위하여 만든 스크립트가 정상적으로 작동하기 시작했다. onedrive-d 데몬이 자주 죽어서 매번 동기화가 잘 안되곤 하였는데 분단위 감시로 해당 데몬을 자동으로 살릴수 있게 되었다.