我想用Linux的crontab运行一些爬虫。crontab正在返回错误
这应该去Python环境与
pyenv shell jake-crawler
这里是我的crontab -e
*/10 * * * * /home/ammt/apps/crawler/scripts/bat_start.sh
这将每10分钟一班。当我输入
(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
里面的bat_start.sh
我有init.sh
从而改变环境的Python此命令行工作正常。
这是我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?它是“根”吗?如果是这样,那么为什么你在'init.sh'而不是'/ home/ammt'中使用'$ {HOME}'? –
我用了ammt。如何检查命令行中的$ {Home}路径? $ {Home}被定义为/ home/ammt –
要检查它,你可以说'echo $ HOME'。 但是,根据您的评论,您是否仅仅使用'ammt'手动运行命令*还是您还使用它来运行'cron'并不清楚。你可以请扩展一下吗? –