저는 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