Как настроить crontab для выполнения в определенное время

Как мне настроить мой crontab для выполнения X script в 23:59 каждый день без отправки по электронной почте или создания каких-либо журналов?

Сейчас мой crontab выглядит примерно так.

@daily /path/to/script.sh

Ответы

Ответ 1

Когда вы выполняете crontab -e, попробуйте следующее:

59 23 * * * /usr/sbin/myscript > /dev/null

Это означает: каждые 59 минут и 23 часа каждый день (*) каждый месяц в каждый будний день выполняйте myscript.

Подробнее см. man crontab.

Ответ 2

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

... 2>&1 ....

Ответ 3

В ответ на ответ svrist в зависимости от вашей оболочки, 2 > & 1 должен идти после > /dev/null или вы все равно увидите вывод из STDERR.

Следующие тишины как stdout, так и stderr:

59 23 * * * /usr/sbin/myscript > /dev/null 2>&1

Следующие stounout молчания, но stderr все равно будет отображаться (через stdout):

59 23 * * * /usr/sbin/myscript 2>&1 > /dev/null

Расширенная глава Bash Руководство по сценариям по перенаправлению IO - хорошая ссылка - найдите 2 > и 1, чтобы увидеть пара примеров.