Shell 脚本在终端上运行但在 cron 上不运行

Shell 脚本在终端上运行但在 cron 上不运行

我在虚拟环境中使用 jupyter notebook 来使用 selenium 提取数据。我使用了一个 shell 脚本来在 cronjob 上运行 jupyter notebook按照建议。

#!/bin/bash

/home/username/environments/venv/bin/jupyter nbconvert \
        --execute \
        --to notebook /home/username/environments/venv/jupyter_scripts/Untitled1.ipynb \
        --output /home/username/environments/venv/jupyter_scripts/Untitled2.ipynb \

我可以在终端上运行此脚本,它会给出输出 csv 文件。但是当我在 cronjob 上运行相同的脚本时,它不会给出输出 csv 文件。以下是来自 cronlog 的日志:

Jan 28 06:57:01 username cron[23859]: (root) RELOAD (crontabs/root)
Jan 28 06:57:02 username CRON[25475]: (root) CMD (/home/username/environments/project/script.sh >/dev/null 2>&1)

这意味着 shell 脚本正在执行。但我没有得到输出 csv 文件。有人能帮我理解这里的问题是什么吗?我该如何解决这个问题?

编辑:以下是 cronjob

57 06 * * * /home/username/environments/project/script.sh >/dev/null 2>&1

然后按如下方式更改 cron cmd,以便将日志存储在与 cronlog 不同的单独日志文件中。

/home/username/environments/project/script.sh > /home/username/environments/project/script.log 2>&1

从 script.log 我发现以下错误

[NbConvertApp] ERROR | Error while converting '/home/username/environments/venv/jupyter_scripts/Untitled1.ipynb'

但运行时./script.sh我在终端上收到以下登录信息

username@username:~/environments/project$ ./script.sh
[NbConvertApp] Converting notebook /home/username/environments/venv/jupyter_scripts/Untitled1.ipynb to notebook
[NbConvertApp] Executing notebook with kernel: python3
[NbConvertApp] Writing 3543 bytes to /home/username/environments/venv/jupyter_scripts/Untitled2.ipynb

并且在终端上运行脚本时也创建了所需的 csv 输出。

相关内容