Я хочу выполнить скрипт ruby, содержащий команды sudo. Если я введу эту команду в "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
Но это не работает. Файл журнала не создается во втором случае. У меня тоже был другой адрес.
Если я ввожу эту команду в "crontab-e", она хорошо работает:
Тот выполняется как Вы, пользователь так понимает Ваш ДОМ.
Так как мой сценарий содержит команды sudo, я использовал "sudo crontab-e" и записал:
Проблема: если Ваша строка home/USERNAME/
должен быть /home/USERNAME/
(дважды!), где ИМЯ ПОЛЬЗОВАТЕЛЯ должно быть Вашим фактическим пользователем. Вам нужен полный путь в crontab.
И действительно: ошибка, вероятно, зарегистрирована к/var/log/syslog
О, и сделайте быть бесполезное * * * * *, не имея некоторой логики в Вашем сценарии, чтобы иметь, это не выполняется больше раз затем, Вы действительно хотите. Если необходимо выполнить его, навсегда используют systemd сервис с опцией переикры.