Linuxのcrontabでクローラを実行しようとしています。crontabがエラーを返す
これは、ここで
pyenv shell jake-crawler
でPython環境に行くべきである私のcrontab -e
*/10 * * * * /home/ammt/apps/crawler/scripts/bat_start.sh
これは10分ごとに実行されます。私は、Pythonの環境を変更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'を実行するのに使ったのかは不明です。あなたはこれを拡張していただけますか? –