Python: 가상 환경에서 스크립트를 실행하도록 crontab을 구성하는 방법

Python: 가상 환경에서 스크립트를 실행하도록 crontab을 구성하는 방법

저는 Linux에서 cronjob을 만드는 것이 처음입니다. 내 목표는 자체 가상 환경에서 Python 스크립트를 실행하는 것입니다.

이를 위해 먼저 다음과 같은 쉘 스크립트를 만들었습니다.트위터.sh그 내용은 다음과 같습니다:

source /home/josecarlos/Workspace/python/robot2-rss/venv/bin/activate 
python /home/josecarlos/Workspace/python/robot2-rss/main.py R,1

그리고 그 경로는 다음과 같습니다:

/home/josecarlos/Workspace/python/robot2-rss

경로 덕분에 소스 코드와 Python 명령에 액세스할 수 있습니다./usr/빈아래와 같이 PATH 변수에 포함되어 있습니다.

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin

내 cronjob의 구성은 다음과 같습니다.

# m h  dom mon dow   command
*/1 * * * * /home/josecarlos/Workspace/python/robot2-rss/twitter.sh

그러나 내 cron 작업의 이 구성은 작동하지 않으며 내가 뭘 잘못하고 있는지 모르겠습니다 :(

편집 1:

twitter.sh 스크립트를 다음 새 코드로 수정했습니다.

#!/bin/sh

/home/josecarlos/Workspace/python/robot2-rss/venv/bin/python /home/josecarlos/Workspace/python/robot2-rss/main.py R,1

스크립트를 직접 실행하면 제대로 작동하지만 cron 작업을 사용하면 작동하지 않습니다! :(

편집 2:

twitter.sh의 마지막 수정에서는 방금 Python 스크립트를 호출했습니다. 다음과 같이 Python 스크립트를 직접 호출하도록 cron 작업을 수정했습니다.

# m h  dom mon dow   command
* * * * * /home/josecarlos/Workspace/python/robot2-rss/venv/bin/python /home/josecarlos/Workspace/python/robot2-rss/main.py R,1

작동하지 않습니다 :( 무슨 일이 일어날 지 모르겠습니다 :(

답변1

적절한 쉘 설정

twitter.sh 편집

#!/bin/bash
PATH=....
source /home/josecarlos/Workspace/python/robot2-rss/venv/bin/activate 
python /home/josecarlos/Workspace/python/robot2-rss/main.py R,1

반드시 PATH를 설정하세요.

명령 결과 기록

crontab에 로그인 섹션 추가

*/1 * * * * /home/josecarlos/Workspace/python/robot2-rss/twitter.sh >> /var/log/twitter.log 2>&1

뭔가 잘못되면 볼 수 있습니다/var/log/twitter.log

관련 정보