Что означает «/dev/null 2>&1» в записи Cronjob?

Может ли кто-нибудь объяснить мне, что означает выполнение «2>&1» здесь, в приведенном ниже задании cron?

      0 23 * * * wget -q -O /dev/null "https://example.com/index.php" > /dev/null 2>&1

2 ответа

Это означает, чтоstderr(2- содержащий сообщения об ошибках выполненной команды или скрипта) перенаправляется (>&) кstdout(1— вывод команды) и что последняя перенаправляется на/dev/null(нулевое устройство).

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

Дополнительную информацию о перенаправлении вывода можно найти в The Linux Documentation Project здесь и здесь . Нулевое устройство описано здесь .

Я просто хотел бы немного расширить ответ @digijay, объяснив не « что > /dev/null 2>&1делает ", но " почему оно там ".

1. Действия Cron записывают соответствующие данные в разные системные файлы. Например, популярные места для регистрации ошибок cron включают :/var/log/cron,/var/log/messagesи/var/log/syslog.

2. По умолчанию задания cron отправляют электронное письмо на учетную запись пользователя, выполняющего задание cron.

Итак, чтобы избежать случаев 1 и 2 (вы не хотите ни видеть какую-либо информацию/журналы ошибок, ни получать электронные письма от cron, вы просто хотите, чтобы cron работал молча), вам следует перенаправитьstderrиstdoutк/dev/null.

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