cronjob не работал

 * * * * *       root     bash /home/alan/Desktop/clientscript.sh > /home/alan/Desktop/alan.txt

Я должен произвести в alan.txt от входа clientscript.sh, но он дает пустой вывод на alan.txt, я не могу найденный, что является ошибкой

Это не работает, пробуют некоторых для передачи этого

это - с созданием живого CD человечность 18.04lts OS

0
задан 11 September 2018 в 08:40

2 ответа

Убедитесь, что вы создаете свой cronjob, используя:

crontab -e

. Независимо от того, каким пользователем вы вошли в систему, как при выполнении вышеупомянутой команды, будет тем пользователем, которым выполняется cronjob. Если вы хотите, чтобы ваш cronjob выполнялся от имени пользователя root, вам необходимо войти в систему как пользователь root или использовать команду sudo:

sudo crontab -e

Если вы создадите свою работу с помощью приведенной выше команды, эта «корневая» часть прервется. вещи. Ваша работа должна выглядеть так:

  * * * * * /bin/bash /home/alan/Desktop/clientscript.sh > /home/alan/Desktop/alan.txt

Всегда используйте абсолютные пути в cronjobs, иначе они могут сломаться.

Как отмечает PerlDuck:

Если вышеупомянутое является cronjob в каком-то файле /etc/cron.d/, тогда корневая часть является обязательной. Но только там, как вы правильно указали. cronjobs ниже /etc/cron.d - это так называемые системные cronjobs. Синтаксис почти такой же, за исключением того, что вы должны указать пользователя, которому задание следует запустить, в дополнительном столбце после указания времени. И, конечно, вы должны быть пользователем root для создания файлов в этом каталоге - PerlDuck

Итак, если вы вручную создаете файл cron в /etc/cron.d, тогда оригинальное задание cron будет правильным :

  * * * * * root /bin/bash /home/alan/Desktop/clientscript.sh > /home/alan/Desktop/alan.txt

ИМХО, создавать cronjobs с crontab -e намного проще.

Наконец, вы можете увидеть любой вывод ваших cronjobs, запустив:

 grep CRON /var/log/syslog
4
ответ дан 28 October 2019 в 00:04

Выполненный crontab -e и помещенный после строки в него:

*/1 * * * * /home/alan/Desktop/clientscript2.sh 1> /dev/null 2> /home/alan/test.err

вставьте Ваш clientscript2.sh файл после содержания:

#!/bin/bash
/home/alan/Desktop/clientscript.sh > /home/alan/Desktop/alan.txt

Это работает каждую минуту. test.err файл даст Вам ошибку на выходе в случае, если команда не успешно выполняется.

0
ответ дан 28 October 2019 в 00:04

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

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