Cron 설정
🙈

Cron 설정

Created
Mar 5, 2024 08:57 AM
Last edited time
Last updated March 6, 2024
Tags
CS
Language
URL

Intro::

크론탭 설정에 대해 정리해보자.
 
크론탭(Crontab)을 사용하여 Docker 컨테이너를 1분마다 실행시키고 종료된 후에 삭제하는 작업을 자동화할 수 있습니다. 이를 위해서는 먼저 크론 작업을 설정해야 하며, Docker 컨테이너를 실행하고 종료 후에 자동으로 삭제하는 명령어를 포함시켜야 합니다.

크론탭 설정

  1. 크론탭 편집: 터미널에서 crontab -e 명령어를 실행하여 크론탭 설정 파일을 엽니다.
  1. 작업 추가: 파일에 다음과 같은 형식의 작업을 추가합니다.
    1. 0 * * * * cd /home/ec2-user && bash crawl.sh >> /home/ec2-user/log/crontab.log 2>&1
      이 형식은 매 분마다 /path/to/script.sh 경로의 스크립트를 실행하라는 의미입니다. script.sh는 실제 Docker 컨테이너를 실행하고 삭제하는 스크립트 파일로 대체해야 합니다.

Docker 컨테이너를 실행하고 삭제하는 스크립트

script.sh 파일을 생성하고, Docker 컨테이너를 실행한 후에 종료되면 자동으로 삭제하도록 다음과 같이 스크립트를 작성합니다.
#!/bin/sh # 컨테이너 이름 설정 CONTAINER_NAME="test_container" # 사용할 도커 이미지 IMAGE_NAME="test:latest" # 실행 중인 컨테이너 확인 if docker ps | grep -q $CONTAINER_NAME; then echo "컨테이너가 이미 실행 중입니다." else # 컨테이너가 종료된 상태인지 확인 if docker ps -a | grep -q $CONTAINER_NAME; then echo "컨테이너가 종료된 상태입니다. 재시작합니다." sudo docker start $CONTAINER_NAME else # 컨테이너가 존재하지 않으면 새로 생성 및 실행 echo "컨테이너가 존재하지 않습니다. 새로 생성합니다." sudo docker run --name $CONTAINER_NAME -d $IMAGE_NAME fi fi
  • your-docker-image는 실행하고자 하는 Docker 이미지의 이름으로 대체해야 합니다.
  • -rm 옵션은 컨테이너가 종료될 때 자동으로 삭제되도록 합니다.

스크립트 실행 가능하게 만들기

스크립트 파일이 저장된 후, 이 파일이 실행 가능하도록 권한을 변경해야 합니다. 터미널에서 다음 명령어를 사용하세요:
chmod +x /path/to/script.sh
이제 설정한 크론탭 작업이 매분마다 script.sh 스크립트를 실행하여 지정한 Docker 이미지를 기반으로 컨테이너를 실행하고, 컨테이너의 실행이 종료되면 자동으로 컨테이너를 삭제합니다.
크론탭 설정, 스크립트 작성 및 실행 권한 부여 과정을 올바르게 수행했다면, 원하는 작업이 자동으로 정기적으로 실행됩니다. Docker 컨테이너의 실행이 짧은 작업에 유용하게 사용될 수 있으며, 이 방법으로 다양한 배치 작업, 정기적인 데이터 처리, 자동화된 테스트 등을 구성할 수 있습니다.
 

자잘한 명령어

crontab -e# 크론 작성 crontab -l# 현재 크론 목록 crontab -r# sudo service crond restart# 재시작
 
 

References::

 

Loading Comments...