Рейтинг:0

Сценарий задания cron не выполняет команду завершения

флаг us

Я новичок в реализации заданий cron. На моем локальном компьютере я настроил crontab в системе kubuntu, но когда выполняется cronjob, он не выполняется конечная остановка команды внутри него. Когда я запускаю команды терминала непосредственно из терминала с помощью sudo, он успешно выполняется, но не из сценария оболочки cronjob.

$ кто
$ аамир
$ какой конец
$ /usr/local/бен/терминал

test2.sh

#!/бин/ш

sudo терминальная аутентификация: логин --machine-token = xxxxxxx
команда sudo терминус здесь

запись crontab Как пользователь root

$ sudo crontab -u корень -e
07 15 24 * * /var/www/html/test2.sh > /dev/null 2>&1

В журналах я вижу, что эта запись в crontab выполняется, но команда termus внутри скрипта не выполняется. Я предполагаю, что это не правильный путь для терминала. Буду признателен за любую оказанную помощь.

codlord avatar
флаг ru
Вместо того, чтобы перенаправлять вывод в /dev/null, почему бы вам не перенаправить вывод в файл журнала, чтобы вы могли сами увидеть, что именно делает ваш скрипт и какие ошибки вы получаете. Например: `07 15 24 * * /var/www/html/test2.sh >> /path/to/my/logfile.log 2>&1`
Aamir avatar
флаг us
@codlord Я пробовал. logfile пуст после выполнения cronjob.
codlord avatar
флаг ru
Я ничего не знаю о `terminus`, но я бы посоветовал вам добавить некоторые выходные данные `echo` в ваш скрипт перед каждой командой, чтобы вы могли быть уверены, к каким строкам переходит скрипт, а также попробовать указать абсолютный путь `/usr/ local/bin/terminus`, а не просто `terminus`.
FedKad avatar
флаг cn
Удалите два sudo из вашего скрипта.
Рейтинг:0
флаг cn
  • Никогда запускать графические приложения, в данном случае эмулятор терминала конечная остановка как корень. Terminus — это приложение для конечного пользователя. Запустить только *как Пользователь за Пользователь.
  • Никогда используйте crontabs для запуска эмулятора терминала или любого другого графического приложения конечного пользователя, не говоря уже о crotab root. Если вы хотите автоматически запускать эмулятор терминала, в этом случае конечная остановка, поместите его в приложения для запуска каждого пользователя, который хотел, чтобы он загружался во время запуска.
  • Никогда использовать судо в сценарии. Если это необходимо для системных административных задач, запустите весь сценарий с привилегиями root.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.