【问题标题】:Crontab run only a part of the scriptcrontab 只运行部分脚本
【发布时间】:2017-07-14 21:25:01
【问题描述】:

我的脚本test.sh

#!/bin/bash

source activate rsgislib_dev

/home/user/anaconda2/envs/rsgislib_dev/bin/python /opt/AGR/resample.py

/home/user/anaconda2/envs/rsgislib_dev/bin/python /opt/AGR/stack_bands.py


us_1=$(/home/user/anaconda2/envs/rsgislib_dev/bin/python <(cat << 'EOF'
import sys;
import glob;

us_T34TCP = glob.glob('/tmp/sen/stack_bands/*T34TCP*.kea')
us_T34TCP_L_to_str = ''.join(us_T34TCP)
print us_T34TCP_L_to_str

EOF
))
echo $us_1


is_1="${us_1:0:71}3${us_1:72}"
echo $is_1

gdalwarp -t_srs EPSG:32633 $us_1 $is_1 -r cubic -tr 10 10 -of KEA

rm $us_1

source deactivate

Cron

30 12 * * * /opt/AGR/test.sh

脚本手动运行,但 crontab 仅执行部分。执行 python 脚本,然后停止。

有人知道问题出在哪里吗?

【问题讨论】:

  • 为您的脚本创建日志和错误文件,以调试它为什么没有像这样进一步执行,30 12 * * * /opt/AGR/test.sh 1&gt;/opt/AGR/test.log 2&gt;/opt/AGR/test.err
  • 我制作了日志。问题是它没有激活源 (source activate rsgislib_dev)。日志 --> /opt/AGR/test.sh: line 50: activate: No such file or directory. 有什么想法吗?
  • 当我手动执行脚本时,一切正常。当我运行 crontab 时不会激活 source
  • source 搜索PATH 变量中的目录。确保设置正确,以便在 cron 运行时脚本可以找到您的 activate 脚本。

标签: python bash cron


【解决方案1】:

我解决了。

....
cd /home/user/anaconda2/envs/rsgislib_dev/bin
source activate rsgislib_dev
...

【讨论】:

    猜你喜欢
    • 2015-01-14
    • 1970-01-01
    • 2015-10-05
    • 2017-12-16
    • 2017-11-20
    • 2017-12-02
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多