Как настроить crontab на выполнение в определенное время
Вопрос
Как я могу настроить свой crontab на выполнение X script в 11: 59 вечера каждый день, не отправляя мне сообщений по электронной почте и не создавая никаких журналов?
Прямо сейчас мой crontab выглядит примерно так
@daily /path/to/script.sh
Решение
Когда вы будете использовать crontab -e, попробуйте следующее:
59 23 * * * /usr/sbin/myscript > /dev/null
Это означает:В 59 минут и 23 часа каждого дня (*) каждого месяца в каждый будний день выполняйте myscript.
Видишь мужчина кронтаб для получения дополнительной информации и примеров.
Другие советы
Последующие действия по ответ свриста, в зависимости от вашей оболочки, 2> и 1 должны идти после > /dev/null или вы все равно увидите выходные данные из stderr.
Следующее приведет к отключению как stdout, так и stderr:
59 23 * * * /usr/sbin/myscript > /dev/null 2>&1
Следующее отключает стандартный вывод, но stderr все равно будет отображаться (через стандартный вывод):
59 23 * * * /usr/sbin/myscript 2>&1 > /dev/null
Глава руководства по расширенному написанию сценариев Bash, посвященная перенаправлению ввода-вывода это хорошая ссылка - найдите 2> &1, чтобы увидеть пару примеров.
Вместе с приведенным выше ответом вы получите электронное письмо с любым текстом, написанным на stderr.Некоторые люди перенаправляют и это, и следят за тем, чтобы скрипт записывал журнал вместо этого.
... 2>&1 ....