威联通 qnap 定时执行 Python 脚本

在上期 威联通 qnap 使用 Python3 已经弄明白,怎么在 shell 里使用 Python3 了。但是我想要的是能够定时执行 Python3 脚本。

通过执行 pip3 -V 可以查找到它在哪个位置。

# pip3 -V
pip 22.0.4 from /opt/python3/lib/python3.10/site-packages/pip (python 3.10)
[/share/CACHEDEV1_DATA/.qpkg/Python3] # which python3
/share/CACHEDEV1_DATA/.qpkg/Python3/python3/bin/python3

直接使用 pip3 install xxx 来安装模块的话,是安装到 /opt/python3/lib/python3.10/site-packages/ 里面的。

而且它提示我更新 pip 版本给的命令是

/opt/python3/bin/python3.10 -m pip install --upgrade pip

跟我预期的不一样,我还以为会使用 /share/CACHEDEV1_DATA/.qpkg/Python3/python3/bin/python3.10 呢。

查询一下,发现 /opt/python3/bin/python3.10 并不是软链接。那为什么 /opt/python3/bin/ 里面的内容和 /share/CACHEDEV1_DATA/.qpkg/Python3/python3/bin/ 一模一样呢?

后来我知道了,原来 /opt/python3 就是一个符号链接而已。

# ls -alh /opt/python3
lrwxrwxrwx 1 admin administrators 43 2023-05-04 07:15 /opt/python3 -> /share/CACHEDEV1_DATA/.qpkg/Python3/python3/

为了命令比较简短一些,我还是用 /opt/python3/bin/python3

执行

crontab -e

添加定时任务,例如我让它每天早上 7 点 18 分自动执行一个 Python 脚本。

18 7 * * * /opt/python3/bin/python3 /share/CACHEDEV1_DATA/Multimedia/powersee_script.py

这样添加重启机器后任务就没了,详见 威联通添加 crontab 任务正确的做法