파이썬 파일을 정해진 기간마다 자동으로 실행하는 것이 필요할 때가 있다. 모델을 자동으로 학습한다던지..하는?
그럴 때는 shellscript로 자동 실행문을 만들어서 crontab에 등록해 놓으면 편리하다 😊
📄 python_auto_launcher.sh
#!/bin/sh BASE_DIR="/파일이 있는 경로를 입력" RESULT="/실행 결과를 출력할 경로를 입력" StartTime=$(date +%s) get_time() { TIME=`date '+%Y/%m/%d %H:%M:%S'` } msg() { get_time echo "[$TIME] $*" | tee -a $RESULT } conda_act() { source /home/사용자 계정/anaconda3/etc/profile.d/conda.sh source /home/사용자 계정/anaconda3/bin/activate `가상환경 이름` } msg "[START ] Script Started!" conda_act cd $BASE_DIR ~/anaconda3/envs/가상환경 이름/bin/python `파일명(~.py)` EndTime=$(date +%s) msg "[END ] Script End!" msg "[RUN-TIME] Total Spent time : $(($EndTime - $StartTime)) Second"
이렇게 스크립트를 생성하면 파일 실행 경과 시간을 로그에서 확인할 수 있다.
생성한 스크립트는
$ crontab -e # crontab 수정 명령어
상단의 명령어로 크론탭을 등록해서 원하는 시간에 자동 실행을 시키면 된다.(vi 모드와 같이 수정하면 됨)
나같은 경우에는 아래처럼 등록해서 사용하고 있다.
######################################################
# Service Sample
00 12 * * * /sh 파일 경로/~.sh
다음과 같이 작성하면 매일 12시 정각마다 sh 파일이 자동 실행된다.
각 탭은 분 / 시 / 일 / 월 / 요일로 구성되어 있는데, * 표기를 하면 모든 일,월,요일에 실행한다는 의미이다. (즉, 매일 실행한다는 뜻)
크론탭 작성법과 관련해서는 "크론탭 작업 스케줄러"라고 검색하면 관련 자료가 많이 나온다.
작성을 완료한 크론탭 리스트는
$ crontab -l
상단의 명령어로 전부 확인이 가능하다.