매시간마다 파이썬 스크립트를 실행시키는 방법이 있을까요?


  • Level 3

    구름 ide 컨테이너 사용 유저입니다.

    지금 매시간마다 파이썬 스크립트를 실행시키고 싶은데 crontab에서 스케쥴러를 등록해도 실행되지 않고 있습니다.

    0 * * * * python /workspace/crawler/test1.py
    

    현재 컨테이너 설정은 항상켜두기 + service cron start 해놓은 상태입니다.

    위의 test1.py를 매시간마다 실행시키려면 어떻게 해야 될지 아시는분은 답변 부탁드립니다.

  • Level 15

    crontab -e 입력 후 스케쥴러 등록하시고 service cron start 하시면 됩니다.

    python 명령 부분은 절대경로로 써주시면 좋습니다. 예를 들어
    0 * * * * /usr/local/bin/python /workspace/crawler/test1.py
    와 같이 써주시면 실행이 됩니다.
    which python 명령으로 사용하시는 python 명령의 절대경로를 확인하실 수 있습니다.

  • Level 12

  • Level 12

    안녕하세요.
    확인해보니 리눅스 cron + 항상켜두기로는 원하시는 결과를 얻을 수 없을 거 같습니다.
    다른 방법으로 python schedule 를 사용하는 방법이 있습니다.
    예를 들어 1분마다 result.txt 에 string을 추가한다고 하면

    1. schedule 설치
    pip install schedule
    
    1. 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()))
    
    1. 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)
    
    
    1. 컨테이너 설정 페이지의 [항상켜두기] on
    2. 컨테이너 설정 페이지의 [자동 실행 스크립트]에 아래 명령어 추가
    nohup python /workspace/check-cron/cron.py &
    
    1. 컨테이너 설정 페이지에서 컨테이너 [정지] -> [시작]

    이와 같이 하면 될거 같습니다.
    그리고 만약 실행되는 어플리케이션(cron.py)을 종료하려면
    IDE 화면의 상단 메뉴 [프로젝트] -> [프로세스 목록]에서 종료할 어플리케이션을 선택 후 하단 아래의 [강제 종료]를 클릭하시면 됩니다.

    감사합니다.