본문 바로가기
프로그래밍

[Linux]Crontab이 실행되지 않을 때 해결방법

by Mr.noobiest 2023. 5. 18.

 


Crontab

window의 스케쥴러처럼 linux에서는 cron 데몬을 지원해준다,

거기서 명령어를 사용해서 스케쥴러를 실행하는 crontab을 쓰려고 하는데, 막상 만들고 나니 아예 동작자체를 안하는것을 확인하였다.

여러 방법을 찾다가 결국은 방법을 찾아서 공유하려고 한다.

 

 

 Crontab이 정상적으로 실행되지 않는 이유는? 

 

 

1) crontab -e 이후 cron 재시작을 안해서

$ sudo systemctl restart crond

 

 

[crontab]Linux 스케줄링 crontab이 안될경우(+.py를 Crontab으로 스케줄링 걸어주기)

- .py crontab 설정하기 - 리눅스에서 .py 파일을 만들고 해당 파일을 매일 정해진 시간마다 돌리고 싶었다. 근데 안됨 다 되는것 같고 에러 메시지도 안뜨는데 되지를 않음 그래서 찾아본 결과 아래

mrnoobiest.tistory.com

 


 

 

2) 경로를 잘못 입력해서

pwd로 파일의 위치를 복사 붙여넣기로  정확하게 입력해주도록 한다.

$ pwd
#절대경로로 설정해준다.

 

 


 

3) 파일이 실행되는 주기를 잘못 설정해서

 

Crontab.guru - The cron schedule expression editor

 

crontab.guru

해당 사이트에서는 본인이 원하는 주기로 명령어 생성이 가능하다.

 

 


 

 

4) 실행되는 파일에 권한을 안주어서 <- 이것 때문에 정상적으로 실행되지 않은 것이다.


sh를 예를 들어 작성한다면 아래와 같이 test.sh를 작성하도록 하자.

test.sh (1분마다 테스트경로에 log파일을 생성해주는 테스트파일이다.)

#!/bin/bash
timestamp=$(date +"%Y-%m-%d_%H-%M-%S")
echo "This is a test log." >> "/테스트 경로/test_${timestamp}.log"
$ crontab -e (안된다면 sudo crontab -e)

* * * * * /테스트 경로/test.sh
$ sudo systemctl restart crond  
#(안되면 $ sudo systemctl restart cron)
sudo chmod +x /테스트 경로/test.sh  #<----중요


이후 제대로 log파일이 생성되는지 확인하도록 한다.

 

 


 

 

요약

-파일경로
-파일 권한
-주기 설정을 잘못해서
-cron 재시작 안함 

 

 

 

 

 

728x90
반응형