기본기/OS

[ubuntu] 일정시간마다 파이썬 코드 실행 (Crontab)

dohyeon2 2022. 2. 3. 17:34

목차

    2022-02-03 작성

    ubuntu 환경에서 일정시간마다 python code를 실행해야 하는 task가 생겼다. 

    찾아보니 windows 관리도구에서 제공하는 작업 스케줄러 역할을 해주는 Crontab 이라는 편리한 기능이 있어서 공부하면서 정리하려 한다. 

     


    1. Crontab 설치

    sudo apt-get update

     

    sudo apt-get install cron

     

    2. Crontab 명령어

    • 현재 사용자의 Crontab 설정 보기
      sudo crontab -l​
    • 현재 사용자의 Crontab 설정편집
      sudo crontab -e​
    • 현재 사용자의 Crontab 설정 삭제
      sudo crontab -r​

     

    3. Crontab 규칙

    ex) 

    * * * * * /home/msdl/Downloads/test.py

    → 매분, 매시간, 매일, 매월, 매일, 즉 1분마다 test.py 실행

     

    0 1 * * * /home/msdl/Downloads/test.py

    → 0분, 1시, 매일, 매월, 매일, 즉 매일 1시에 test.py 실행

     

    0 1 * * 1-5 /home/msdl/Downloads/test.py

    → 0분, 1시, 매일, 매월, 월~금, 즉 월~금 1시에 test.py 실행

     

    */10 1 * * * /home/msdl/Downloads/test.py

    → 10분 간격, 1시, 매일, 매월, 매일, 즉 매일 1시, 1시 10분, 1시 20분, 1시 30분, 1시 40분, 1시 50분 test.py 실행

     

    0 */1 * * * /home/msdl/Downloads/test.py

    → 1시간마다 test.py 실행

     

    4. Crontab 동작 확인

    $ service cron status    # 동작 여부 확인
    $ service cron start     # 가동
    $ service cron restart   # 재가동

     

    5. python 코드 수정

    #! /home/msdl/anaconda3/envs/가상환경이름/bin/python3.7

    동작하려는 파이썬 코드 최 상단에 위와같이 한줄 넣어준다.

     

    6. crontab -e 로 crontab 파일 수정

    * */1 * * * /home/msdl/anaconda3/envs/zed/bin/python3.7 /home/msdl/Downloads/test.py

    crontab 파일을 설정할때 위와같이 python path , python file 절대경로 이렇게 2가지 인자를 적어줘야한다.

     

    결과적으로 

    위와같이 일정시간마다 파이썬 파일이 동작하는것을 볼 수 있다. 

    (나는 일정시간마다 jpeg , pcd 파일이 저장되도록 하는 파이썬파일을 실행하였다!)

     

    성공 ㅎㅎ!