我想执行一个包含 sudo 命令的 ruby 脚本。如果我在“ crontab -e ”中输入此命令,它可以正常工作:
* * * * * /usr/bin/ruby ~/myfolder/test.rb >> ~/myfolder/mylog.log 2>&1
由于我的脚本包含 sudo 命令,我使用“sudo crontab -e”并写道:
* * * * * /usr/bin/ruby home/USERNAME/myfolder/test.rb >> home/USERNAME/myfolder/mylog.log 2>&1
但是,它不起作用。在第二种情况下不会创建日志文件。我以前也有不同的地址。
当您的用户了解您的 HOME 时,就会执行该操作。
问题:如果您的行
home/USERNAME/
应该/home/USERNAME/
(两次!) USERNAME 需要成为您的实际用户。您需要 crontab 中的绝对路径。确实:错误可能记录到 /var/log/syslog
哦,请不要使用 * * * * * 没有在你的脚本中有一些逻辑让它不会执行更多次你真正想要的。如果您需要永远运行它,请使用带有 respawn 选项的 systemd 服务。