카테고리 없음

[파이썬] Django : Cron 작업이 Python 스크립트를 실행하지 않습니다.

행복을전해요 2021. 1. 21. 18:38

1 단계 : 스크립트에 Shebang 추가

Unix 스크립트는 " Shebang " 이라는 줄을 사용합니다.

따라서 첫 번째 줄은 다음과 같아야합니다.

#!/usr/bin/env python

2 단계 : 스크립트를 실행 가능하게 만들기

  1. 스크립트가있는 폴더로 이동 mysript.py
  2. chmod +x myscript.py콘솔에서 실행합니다 .
  3. 로 실행하여 실행 가능한지 확인하십시오 ./myscript.py.

3 단계 : CRON에 추가

  1. crontab -e터미널을 입력하십시오 .
  2. 다음과 같은 줄을 추가합니다.

    30 13 * * * / home / 사용자 이름 /myscript.py

  3. crontab -l모든 것이 작동 하는지 확인하십시오 .

( 자세한 내용 cyberciti.biz 참조 )

파이썬 스크립트 디버깅

import datetime
import getpass

now = datetime.datetime.now()

# Open file to append
with open("/home/user/myscript.log", "a") as f:
    f.write("Script started at %i.%i.%i (%i:%i:%i) by %s" % (now.day, now.month, now.year, now.hour, now.minute, now.second, getpass.getuser()))
    
    [...]
    with open("/home/user/myscript.log", "a") as f:
        f.write("File 'xy' was opened.")
        
-------------------

먼저 crontab이 실행 중인지 확인하십시오. tmp 폴더에 파일을 만드는 작업을 추가하십시오. 실행중인 경우. 파이썬에 대한 전체 경로를 제공하십시오.

* / usr / bin / python / home / 장고 프로젝트의 경로 /manage.py ...

-------------------

! / usr / bin / env python은 괜찮습니다.

프로젝트 설정 전체 경로를 DJANGO_SETTINGS_MODULE로 설정하십시오.

DJANGO_SETTINGS_MODULE = / Users / path_to_project / project.settings

          • python /Users/path_to_csv/test_subprocess.py
-------------------

터미널에서 crotab -e를 작성하십시오. 거기에 당신의

* * * * * /usr/bin/python /Users/path_to_csv/test_subprocess.py

그리고 test_subprocess.py에서

DJANGO_SETTINGS_MODULE=project.settings

또한 DJANGO_SETTINGS_MODULE = project.settings는 프로젝트 폴더에서이 크론 작업을 실행하는 경우에만 작동합니다. 따라서 DJANGO_SETTINGS_MODULE = / pathToProject / project.settings로 사용하는 것이 좋습니다.



출처
https://stackoverflow.com/questions/22009790