Назад | Перейти на главную страницу

Вывод электронных писем Cron даже при перенаправлении на / dev / null 2> & 1

Приведенный ниже код должен перенаправлять весь вывод в / dev / null, однако root по-прежнему получает электронное письмо с выводом первой команды (/ usr / bin / svnadmin). Зачем?

#!/bin/sh
# Dump repo and upload via tarsnap

/usr/bin/svnadmin dump /srv/repos/www | gzip > /srv/repos/backup/www-repo-`date --iso-8601`.gz > /dev/null 2>&1
/usr/local/bin/tarsnap -c -f www-repo-`date --iso-8601` /srv/repos/backup/www-repo-`date --iso-8601`.gz > /dev/null 2>&1

Вы передали по конвейеру вторые команды STDOUT и STDERR в / dev / null, а STDOUT первой команды передали второй команде. Итак, STDERR первой команды отправляется вам по электронной почте.

Ты должен написать

( /usr/bin/svnadmin dump /srv/repos/www | gzip > /srv/repos/backup/www-repo-`date --iso-8601`.gz ) > /dev/null 2>&1

С моей репутацией я не могу добавлять комментарии, поэтому мне придется отправить ответ, хотя я не уверен, что это так.

Как выглядит ваш crontab? Я не думаю, что это ваш скрипт отправляет электронную почту, это делает cron / crontab. Пожалуйста, покажите нам содержимое вашего crontab (crontab -e).

Возможно, я ошибаюсь (вчера я сам впервые использовал cron), но я думаю, что у вас должен быть > /dev/null 2>&1 часть в вашем crontab, а не в вашем файле скрипта. Итак, ваш crontab может выглядеть примерно так:

@hourly /your/script/location > /dev/null 2>&1

Надеюсь это поможет.