매시간마다 파이썬 스크립트를 실행시키는 방법이 있을까요?
-
구름 ide 컨테이너 사용 유저입니다.
지금 매시간마다 파이썬 스크립트를 실행시키고 싶은데 crontab에서 스케쥴러를 등록해도 실행되지 않고 있습니다.
0 * * * * python /workspace/crawler/test1.py
현재 컨테이너 설정은 항상켜두기 + service cron start 해놓은 상태입니다.
위의 test1.py를 매시간마다 실행시키려면 어떻게 해야 될지 아시는분은 답변 부탁드립니다.
-
crontab -e
입력 후 스케쥴러 등록하시고service cron start
하시면 됩니다.python 명령 부분은 절대경로로 써주시면 좋습니다. 예를 들어
0 * * * * /usr/local/bin/python /workspace/crawler/test1.py
와 같이 써주시면 실행이 됩니다.
which python
명령으로 사용하시는 python 명령의 절대경로를 확인하실 수 있습니다. -
-
안녕하세요.
확인해보니 리눅스 cron + 항상켜두기로는 원하시는 결과를 얻을 수 없을 거 같습니다.
다른 방법으로 python schedule 를 사용하는 방법이 있습니다.
예를 들어 1분마다 result.txt 에 string을 추가한다고 하면- schedule 설치
pip install schedule
- result.txt에 string append하는 코드 구현(/workspace/check-cron/index.py)
from datetime import datetime import sys filename = '/workspace/check-cron/result.txt' myFile = open(filename, 'a') myFile.write('\nAccessed on ' + str(datetime.now()))
- 2번에서 만든 python 코드를 1분마다 실행하는 코드 구현(/workspace/check-cron/cron.py)
import schedule import time import os def job(): os.system('python /workspace/check-cron/index.py') schedule.every().minutes.do(job) while True: schedule.run_pending() time.sleep(1)
- 컨테이너 설정 페이지의 [항상켜두기] on
- 컨테이너 설정 페이지의 [자동 실행 스크립트]에 아래 명령어 추가
nohup python /workspace/check-cron/cron.py &
- 컨테이너 설정 페이지에서 컨테이너 [정지] -> [시작]
이와 같이 하면 될거 같습니다.
그리고 만약 실행되는 어플리케이션(cron.py)을 종료하려면
IDE 화면의 상단 메뉴 [프로젝트] -> [프로세스 목록]에서 종료할 어플리케이션을 선택 후 하단 아래의 [강제 종료]를 클릭하시면 됩니다.감사합니다.