Печать заданий cron в / dev / stdout

vmuser - имя пользователя, вошедшего в систему в данный момент.

localhost - это имя компьютера, на котором запущен текущий сеанс оболочки.

~ означает, что текущий каталог установлен как домашний каталог пользователя, вошедшего в систему.

$ - произвольный маркер, ограничивающий информацию слева и поле команды справа от него. Относительно того, почему по умолчанию используется $ , обратитесь к этому вопросу в SuperUser.

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

0
21.05.2019, 16:55
2 ответа

cron работает "без головы", поэтому/dev/stdout(и всё, что вы echoне имеет для него смысла ). Вот почему он захватывает сообщения и вместо этого отправляет письма.

Тем не менее, вы по-прежнему можете настроить его на запись в любой обычный файл для передачи другому программному обеспечению. Вы можете сделать это с помощью перенаправления вывода(> somefileили >> somefileпосле запущенной команды ), как показано в примерах принятого ответа:

*/1 * * * * echo "hiccup" >> /var/tmp/some_file 2>&1
0
28.01.2020, 02:40

Суть cron в том, чтобы запускать команды без терминала. Это означает, что нет терминала для вывода stdout. Вот почему это отправляется по почте.

Вы можете отказаться от его вывода:

*/1 * * * * echo "hiccup" >> /dev/null 2>&1

Вы можете направить стандартный вывод своих заданий в программу, например. loggerдля отправки демону системного журнала:

*/1 * * * * echo "hiccup" | logger -t mycronjob 2>&1

Или перенаправить в файл:

*/1 * * * * echo "hiccup" >> /var/tmp/some_file 2>&1

Но просто нет терминала , где задания cron могли бы отправлять свой стандартный вывод на...

3
28.01.2020, 02:40

Теги

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