Почему sudo crontab не работает, а crontab работает?

Я хочу выполнить скрипт 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

Но это не работает. Файл журнала не создается во втором случае. У меня тоже был другой адрес.

1
задан 24 July 2019 в 16:03

1 ответ

Если я ввожу эту команду в "crontab-e", она хорошо работает:

Тот выполняется как Вы, пользователь так понимает Ваш ДОМ.

Так как мой сценарий содержит команды sudo, я использовал "sudo crontab-e" и записал:

Проблема: если Ваша строка home/USERNAME/ должен быть /home/USERNAME/ (дважды!), где ИМЯ ПОЛЬЗОВАТЕЛЯ должно быть Вашим фактическим пользователем. Вам нужен полный путь в crontab.

И действительно: ошибка, вероятно, зарегистрирована к/var/log/syslog

О, и сделайте быть бесполезное * * * * *, не имея некоторой логики в Вашем сценарии, чтобы иметь, это не выполняется больше раз затем, Вы действительно хотите. Если необходимо выполнить его, навсегда используют systemd сервис с опцией переикры.

2
ответ дан 7 December 2019 в 13:15

Другие вопросы по тегам:

Похожие вопросы: