nohup 배포 문제점, Crontab을 이용한 해결

Sol's·2023년 5월 15일
0

Aws 무중단 배포

목록 보기
11/28
post-thumbnail

앞서 배포한 방법은 서버를 배포했지만 서버가 내려갈 경우 다시 배포하지 못합니다.

  • 트래픽 부하, 에러 -> 서버 종료
  • 서버 종료시 error로그를 남김 -> nohup 2>err.log
  • 하지만, 자동 재시작이 되지 않습니다...

언제서버가 내려갈지 알 수 없으니 불안전한 배포입니다.

Crontab

Crontab을 이용해서 서버가 내려가면 자동으로 재시작 할 수 있습니다.
그 방법을 알아보겠습니다.

크론탭 옵션

crontab -e 

*의 의미

아래 명령어는 매분 명령어를 시행하겠다는 뜻입니다.

* * * * * ls -l 1>>cron.log

첫번째 * : 분 (0-59)
두번째 * : 시간 (0-23)
세번째 * : 일 (1-31)
네번째 * : 월 (1-12)
다섯번째 * : 요일 (0-7)
> : 덮어 씌우기
>> : append

Crontab을 스크립트로 등록하기

myScript.sh 파일을 만들어 crontab을 설정하는 스크립트를 작성하겠습니다.

myScript.sh

# 크론탭 내용을 crontab_new 파일로 옮긴다.
crontab -l 1>crontab_new

# crontab_new 파일에 echo의 내용을 추가한다.
echo "* * * * * /home/ubuntu/job.sh" 1>>crontab_new

# crontab에 crontab_new에 작성한 내용을 반영한다.
crontab crontab_new

# crontab_new 파일을 삭제한다.
rm crontab_new

job.sh

ls -l >> /home/ubuntu/cron.log

myScript에서는 crontab_new 파일로 crontab 설정을 합니다.
이떄 /home/ubuntu/job.sh 파일을 실행하는 crontab을 설정합니다.
job.sh에는 수행할 내용을 담아두면 됩니다.
현재는 단순히 목록을 확인하는 용도의 스크립트만 작성하였습니다.
cron.log를 만들어 현재 폴더의 목록을 계속 저장할 것입니다.

설정을 했으니 스크립트를 실행해 보겠습니다.

chmod u+x myScript.sh
./myScript.sh

이제 확인해보겠습니다.

설계한 대로 잘 작동하는것을 확인 할수 있습니다.

profile
배우고, 생각하고, 행동해라

0개의 댓글