我有一个“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,虚拟机的时间与主机不同。我在虚拟机中安排作业,并查看主机上的时间。两次时间不同意味着脚本没有在我预期的时间执行。