我在虚拟环境中使用 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 输出。