试图在每天00:30运行一个“R”脚本。 该脚本位于/home/username/Desktop/folder/runnow.r中, which Rscript显示二进制Rscript的绝对path是/usr/bin/Rscript 。 我所做的crontab项是使用crontab -e命令,然后插入行:
38 14 * * * /usr/bin/Rscript /home/username/Desktop/folder/runnow.r
现在的时间是14:36。 我等了5分钟,看看是否在我的个人文件夹中创build了一个CSV文件。 由于R脚本runnow.r有处理一些数据的指令,然后在主文件夹中创build一个CSV文件。
但是我的主文件夹中没有CSV文件。 当我手动运行这个脚本(不使用cron)时,它确实在我的home文件夹中创build了一个CSV文件。 所以我知道这个剧本没什么问题。 我使用的绝对path无处不在,我甚至尝试使用service crond restart 。 但是,没有运气。 这是一个特权问题? crond没有足够的权限在我自己的home文件夹中创build一个CSV文件?
编辑:新的观察
如果将行更改为* * * * * /usr/bin/Rscript /home/username/Desktop/foldername/runme.r而不是指定确切的时间,则会在正确的位置创build正确的CSV文件。 所以* * * * *作品和54 13 * * *不。 为什么?
我在最后一次观察时间后发现了这个问题。 这会让我看起来很傻,但是我错了。 我正在一个虚拟机中testing这个cronjob,这个虚拟机的时间与我的主机不同。 我正在虚拟机上安排工作,并在主机上查看时间。 两个时代的不同意味着脚本没有执行我所期望的。