1인개발 메이킹로그/[Infra+k8s+App] 가상화폐 자동매매
[Error] .sh 스크립트 crontab 실행 안됨
청룡동사는연우
2023. 10. 1. 02:40
sudo k3s kubectl delete secret regcred -n prod-ethauto
sudo k3s kubectl create secret docker-registry regcred \
--docker-server=501587125031.dkr.ecr.ap-northeast-2.amazonaws.com \
--docker-username=AWS \
--docker-password=$(aws ecr get-login-password) \
--namespace='prod-ethauto'
python3 /home/ubuntu/docker-reg-cred/recreate-docker-registry-slack-push.py
rm /home/ubuntu/docker-reg-cred/output.log
위 코드를 실행하려고 했는데 실행 되지 않았다.
그냥 sh test.sh 로 실행하면 잘 실행된다.
3가지 오류 원인이 있었는데
# 원인 1
$ cat /var/log/syslog | grep CRON
...
... (CRON) info (No MTA installed, discarding output)
위 오류를 찾아보니 메일 에이전트가 없어서 발생하는 오류라고 한다
sudo apt-get install postfix
에이전트를 설치해서 해결해줬고
# 원인2
0 23 * * * ubuntu sh test.sh
0 23 * * * root sh test.sh
실행하는 유저에 따라 종속성 문제가 발생했다.
root 로 실행하니 sh 안의 파이썬 구문이나 aws 관련해서 설치된 종속성이 없거나 설정된 구성이 없다고 나왔다.
# 원인3
CRON[745950]: (root) CMD (^Ish test.sh
vim 으로 /etc/crontab 을 수정할때 tab 을 사용했는데 그게 그대로 명령줄로 들어가버리는것 같다
tab 을 모두 없애주고 유저 와 명령사이에 스페이스로 넣어줬다
참고
https://skyseven73.tistory.com/15
Crontab에서 스크립트가 실행되지 않는 문제 해결하기
매일 자동으로 DB 파일을 백업하기 위해 backupdb.sh이란 쉘 스크립트를 작성하고, 이를 매일 실행함과 동시에 로깅까지 처리하도록 다음과 같이 크론탭에 스크립트를 작성했다. 0 4 * * * source /home/us
skyseven73.tistory.com