![为什么这个简单的 cronjob 没有运行,我该如何检查相关的日志文件?](https://linux22.com/image/1504745/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84%20cronjob%20%E6%B2%A1%E6%9C%89%E8%BF%90%E8%A1%8C%EF%BC%8C%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E6%A3%80%E6%9F%A5%E7%9B%B8%E5%85%B3%E7%9A%84%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我有一个“R”脚本,希望每天 00:30(即每天凌晨 12:30)运行。脚本本身位于 ,~/Desktop/foldername/runme.r
并which Rscript
告诉我二进制文件的确切路径Rscript
是/usr/bin/Rscript
。因此我创建了以下 crontab 条目:
crontab -e
54 13 * * * /usr/bin/Rscript ~/Desktop/foldername/runme.r
现在的时间当然是 13:52。我等了 5 分钟,看看我的主文件夹中是否创建了一个 CSV 文件。因为 R 脚本 runme.r 有指令来处理一些数据,然后在主文件夹中创建一个 CSV 文件。
但运气不佳。13:54 时,我的主文件夹中没有创建任何 CSV 文件。请注意,当我手动运行此脚本(不使用 cron)时,它做在我的主文件夹中创建一个 CSV。所以我知道我的脚本没有问题。那么为什么 cronjob 没有按预期运行,我可以做些什么来纠正它,或者我如何检查日志文件以获取更多信息来源?
编辑:新观察
如果我将该行更改为* * * * * /usr/bin/Rscript /home/username/Desktop/foldername/runme.r
而不是指定确切时间,它会在正确的位置创建正确的 CSV 文件。所以* * * * *
有效和54 13 * * *
无效。为什么?
答案1
我在上次观察时间后找到了答案。虽然这会让我看起来很傻,但我搞错了时间。我正在虚拟机中测试这个 cronjob,虚拟机的时间与主机不同。我在虚拟机中安排作业,并查看主机上的时间。两次时间不同意味着脚本没有在我预期的时间执行。