Linux crontab에서 일부 크롤러를 실행하려고합니다.crontab이 오류를 반환 중입니다.
이 여기
pyenv shell jake-crawler
로 파이썬 환경에 가야는 내 crontab -e
*/10 * * * * /home/ammt/apps/crawler/scripts/bat_start.sh
이 10 분마다 실행됩니다. 내가 파이썬 환경을 변경 init.sh
이 나는 bat_start.sh
의 내부
(jake-crawler) [[email protected]_OM crawler]$ /home/jake/apps/crawler/scripts/bat_start.sh
[DEBUG|run.py:30] 2017-09-24 19:55:49,980 > BATCH_SN:1, COLL_SN:1, 1955 equal 0908 = False
를 입력 할 때이 명령 줄은 잘 작동합니다.
여기에 제가 개인적으로 명령 줄에서 실행할 때이 문제가 없습니다 내 init.sh
#!/usr/bin/env bash
export PATH="${HOME}/.pyenv/scripts:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv shell jake-crawler
입니다. 하지만 cron을 실행할 때 pyenv
명령을 찾을 수 없습니다.
* 개인적으로 * 실행하면 'ammt' 사용자로 실행합니까? 어떤 사용자가 cron을 실행하는 데 사용됩니까? 그것은'루트'인가? 그렇다면 왜'/ home/ammt'가 아닌'init.sh'에서'$ {HOME} '을 사용합니까? –
나는 ammt를 사용했다. 명령 줄에서 $ {Home} 경로를 확인하는 방법은 무엇입니까? $ {Home}은/home/ammt로 정의됩니다. –
이를 확인하려면'echo $ HOME'라고 말할 수 있습니다. 그러나, 주석에서 * ammt를 사용하여 수동으로 * 명령을 실행했는지 또는 cron을 실행하는데도 사용했는지 여부가 불분명합니다. 이걸 좀 넓혀 주시겠습니까? –