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
脚本中有一个相对路径名,但我将其更改为绝对路径名。
我咨询过:
- https://askubuntu.com/questions/23009/reasons-why-crontab-does-not-work
- http://www.unix.com/answers-to-frequently-asked-questions/13527-cron-crontab.html
知道为什么这可能不起作用吗?
我认为你的问题出在你用来编辑 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 文件中指定)或使用(文件系统)根目录中给定可执行文件的完整路径。
在 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
脚本中有一个相对路径名,但我将其更改为绝对路径名。
我咨询过:
- https://askubuntu.com/questions/23009/reasons-why-crontab-does-not-work
- http://www.unix.com/answers-to-frequently-asked-questions/13527-cron-crontab.html
知道为什么这可能不起作用吗?
我认为你的问题出在你用来编辑 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 文件中指定)或使用(文件系统)根目录中给定可执行文件的完整路径。