공부하기싫어
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