[root@test cron.d]# cat /etc/cron.d/cacti * * * * * root /usr/bin/php /home/vhosts/test/httpdocs/poller.php > /dev/null 2>&1
Очень часто в CRON скриптах, можно встретить конструкцию оканчивающуюся на «> /dev/null 2>&1». Без добавления данной записи можно получить огромное количество писем, многие это знают, и как результат делают банальную копиписту, не понимая, что же все-таки на самом деле происходит.
Все дело в перенаправлении вывода.
Оператор > («больше чем»), как в примере выше, переадресовывает вывод программы.
В данном случае, что-то отправляется в /dev/null, а что-то переадресовывается в &1.
Стандартные ввод, вывод и ошибка
Существует три стандартных значения ввода и вывода для программ:
- Ввод получают от клавиатуры или из программы, обрабатывающей вывод другой программы — STDIN.
- Результат программы, обычно отдающийся на стандартной вывод — STDOUT
- И иногда в файл «STDERR» (ошибка).
Часто к ним обращаются не по имени, а по номеру:
0 — STDIN, 1 — STDOUT и 2 — STDERR
По умолчанию, если вы не укажете номер, то будет подразумеваться STDOUT.
В нашем примере видно, что команда направляет свой стандартный вывод в /dev/null (псевдоустройство, которое может принять произвольный объём данных, не сохраняя их). Затем все ошибки (то есть STDERR) перенаправить в стандартный вывод.
Это один из стандартных способов сделать программу безмолвной.
Команда в примере аналогична команде:
cron job command >/dev/null 2>/dev/null
Источник: http://habrahabr.ru/post/138591/