Как запустить Cron один раз, ежедневно в 10 вечера

178

Я вошел:

* 22 * * * test > /dev/null

Тем не менее, я получаю уведомление по электронной почте, что это происходит каждую минуту. Я смущен, я думаю, потому что я думал, что это правильно для того, что я хочу.

Вениамин
источник
3
Этот веб-сайт объяснит любое расписание cron: crontab.guru
Bruno Finger

Ответы:

369

Это работает каждую минуту часа 22, я думаю. Попробуйте следующее, чтобы запустить его каждую первую минуту часа 22:

0 22 * * * ....
Марк Саймон
источник
Хотя 22 час может быть относительно экономичным, рассмотрим первый случай этого вопроса
Мартин Тома
@MartinThoma всегда пробуй man cronпервым, ты должен найти то, что ищешь.
Марк Симон
Не забудьте проверить дату системы, мне довелось установить crontab для запуска задания в 22, но на самом деле оно началось в 23, потому что система была UTC (поэтому 22 для системы было 23 для меня в GMT).
nnsense
Я проголосовал за этот ответ, но я знал это правило ... во всяком случае, я хотел подтвердить свое молчаливое знание: D
rnrneverdies
154

Вот еще несколько примеров

  • Запуск каждые 6 часов в 46 минут после часа:

    46 */6 * * *

  • Пробег в 2:10 утра:

    10 2 * * *

  • Пробег в 3:15 утра:

    15 3 * * *

  • Пробег в 4:20 утра:

    20 4 * * *

  • Пробег в 5:31 утра:

    31 5 * * *

  • Запуск в 5:31 вечера:

    31 17 * * *

Абдалла Мохамед Али Ибрагим
источник
63

Чтобы запустить один раз, ежедневно в 10 вечера вы должны сделать что-то вроде этого:

0 22 * * *

введите описание изображения здесь

Изображение в полном размере: http://i.stack.imgur.com/BeXHD.jpg

Источник: softpanorama.org

Джайпал Сингх
источник
6
Извиняюсь за плохой размер картинки.
Джайпал Сингх
25

Вот что я смотрю каждый раз, когда пишу новую запись в crontab:

Чтобы начать редактирование с терминала-type:

 zee$ crontab -e

что вы добавите в файл crontab:

0 22 * * 0  some-user /opt/somescript/to/run.sh

Что это означает:

[ 
+ user => 'some-user',      
+ minute => 0’,             <<= on top of the hour.
+ hour => '22',              <<= at 10 PM. Military time.
+ monthday => '*',           <<= Every day of the month*
+ month => '*',              <<= Every month*
+ weekday => ‘*’,            <<= Everyday (0 thru 6) = sunday thru saturday
] 

Кроме того, проверьте, какая оболочка работает на вашем компьютере, и назовите файл соответствующим образом, ИЛИ он не будет выполняться.

Проверьте оболочку либо echo $SHELL илиecho $0

Это может быть "Оболочка Борна, Оболочка (sh)Борна, Оболочка (bash)Корна .. и т. (ksh)Д."

зет
источник
1

Синтаксис для crontab

* * * * * 

Minute(0-59) Hour(0-24) Day_of_month(1-31) Month(1-12) Day_of_week(0-6) Command_to_execute

Ваш синтаксис

* 22 * * * test > /dev/null

Ваша работа будет выполняться каждую минуту в 22:00 всю неделю, месяц и год.

добавление опции (0-59) в минутное место будет запускаться один раз в 22:00 часов всю неделю, месяц и год.

0 22 * * * command_to_execute 

Источник https://www.adminschoice.com/crontab-quick-reference

Магеш Сомасундарам
источник