我正试图设置一个 cronjob,但快要陷入疯狂了。我无论如何也想不通(花了很多时间/精力)如何解决,希望你能帮帮我。
我有一个 Python 脚本,/Server/Home/Paul/Sys+Tech/sortphotos/src/sortphotos.py
它接受一些参数并将文件组织在单独的/子文件夹中。
当我直接运行该脚本时它运行良好
我已经为拥有 Python 脚本的用户 (paul) 设置了一个 crontab,看起来像这样,但是不起作用
* * * * * echo $(date) "cron works" > /var/log/testingcron
* * * * * /usr/bin/python /Server/Home/Paul/Sys+Tech/sortphotos/src/sortphotos.py -r --sort "%Y/%Y %m" /Server/Multimedia/Photo/+inbox_paul/ /Server/Multimedia/Photo/
#* * * * * /bin/bash /Server/Multimedia/Photo/organize-inbox.sh
一些详细说明
我已设置
a+rwx
权限sortphotos.py
我已经添加了 python 可执行文件的完整路径和脚本的完整路径
我已经检查了源文件的访问/权限
我试图设置一个
organize-inbox.sh
包含完整执行命令的 bash 脚本作为运行sortphotos.py
(注释掉的第三行)的中介,但同样丢失了 的权限.sh
。 直接运行 时这也有效organize-inbox.sh
。我尝试为 root 用户设置 cron
我在无休止的网上搜索中得到了一些有用的建议,其中一条建议是通过写入文件来测试 cron 是否真的在工作。这就是第一个 cronjob 的目的。它testingcron
每分钟写入一行,并且每分钟我都会在该文件中看到一行带有时间戳的内容。不幸的是,第二和第三个命令没有产生预期的结果;
我期待着从你那里了解我遗漏了什么/搞砸了什么!谢谢,保罗
我正在运行 Ubuntu 20.4
答案1
事实证明目标文件夹的权限与其余设置不一致。
root
是目标文件夹及其所有子文件夹的所有者。由于 cron-job 和 python 脚本是为没有脚本 写入权限的2022
用户设置的,因此脚本失败。paul
2022
chown
将目标文件夹设置为 cronjob 后,user:paul
它将正常运行
最大的收获;我应该在发布之前更好地检查权限,但无论如何还是感谢您帮助我了解 cron(包括stderr
& stdout
)以满足未来的需求。