crontab 不工作:可能是符号错误?

crontab not working: perhaps an error in notation?

在 Amazon EC2 终端中,我键入:`sudo nano crontab -e' 以调出编辑器。我有以下内容(包括末尾的空行):

@reboot echo "Running RMV scrape & R Shiny via: nano crontab -e"
@reboot nohup python /home/ec2-user/RMV/RMV_scrape.py &
@reboot nohup shiny-server &
@reboot service start httpd
@hourly cp -f /home/ec2-user/RMV/wait_times.csv /var/shiny-server/www/wait_times.csv

在这里,我正在尝试 运行 (a) 我的程序,(b) apache,(c) R Shiny 服务器和 (d) 运行 每小时复制的脚本一个文件。

出于某种原因,这未能 运行。 pgrep chron 确实在启动时显示 chron 运行s。这不应该是权限问题,因为我 运行 crontab 使用 sudo。我的 .py 脚本中有一个相对路径名,但我将其更改为绝对路径名。

我咨询过:

知道为什么这可能不起作用吗?

我认为你的问题出在你用来编辑 crontab 的命令 sudo nano crontab -e 不编辑 crontab 你在你工作的任何目录中创建了一个名为 crontab 的文件,但 crontab 文件在 /var并且不打算直接编辑。对于任何给定用户 crontab -e 将使用环境变量 EDITOR 中指定的编辑器编辑 crontab。所以要编辑 root 的 crontab 命令是 sudo crontab -e.

也就是说,将条目添加到 root 的 crontab 可能不是您想要的。您可能想使用系统 crontab 来做这样的事情。在几乎所有情况下,系统 crontab 都是 /etc/crontab,可以使用 sudo nano /etc/crontab 进行编辑。请注意,对于系统 crontab,您需要在时间和命令部分之间添加命令的用户。例如

@reboot root echo "Running RMV scrape & R Shiny via: nano crontab -e"

另请注意,出于安全原因,crontab 使用非常小的 PATH 环境变量。如果您发出的命令不在路径上,它将不会执行。请记住将您需要的路径添加到 crontab PATH(在特定的 crontab 文件中指定)或使用(文件系统)根目录中给定可执行文件的完整路径。