Как настроить 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, чтобы увидеть пара примеров.