我正在运行 Debian 12,并尝试使用它crontab
执行 Python 脚本定期从 Artifactory 存储库中检索一些文件。
我在 user 下的一个单独用户帐户上运行此作业www
。我使用以下方式编辑了 crontabcrontab -e
命令如下:
# Cron
0 * * * * /path/to/py/venv/python3 /path/to/py/script.py && chown -R user:group /path/to/resource
# Command
/path/to/py/venv/python3 /path/to/py/script.py && chown -R user:group /path/to/resource
根据sudo journalctl -u cron
作业似乎正在运行。我还创建了一个单独的作业0 * * * * date >> ~/clock.txt
作为测试。两者似乎都在执行。但是应该检索文件的 Python 脚本没有向我设置的目录写入任何新内容(日期和时间没有改变)。
我尝试通过复制粘贴直接执行命令,它运行良好并写入了新文件。 cron 是否需要任何特殊操作才能正确执行脚本?
答案1
标准建议是在脚本中添加您的命令并添加您的家庭环境的设置:
#!/usr/bin/bash
source /path/to/your/home/directory/.bashrc
/path/to/py/venv/python3 /path/to/py/script.py && chown -R user:group /path/to/resource
并创建你的 cron 如下:
0 * * * * /path/to/above/script
bash
如果你使用不同的 shell,请更改文件名(相关)