[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/linux/cron-bad-hour":3,"mdc--tte9yc-key":638,"mdc-pwq04m-key":648,"mdc--6fn8u6-key":664,"mdc-jg43z3-key":688,"mdc--txjdyt-key":696,"mdc--l4o6a8-key":712,"mdc--q3pca6-key":720,"mdc--w1fnj0-key":736,"mdc-d4u51x-key":744,"related-/errors/linux/cron-bad-minute,/guides/linux/crontab-setup":760},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":573,"code":27,"createdAt":574,"description":575,"difficulty":576,"draft":577,"estimatedTime":578,"extension":579,"faq":580,"howToSteps":593,"howToTotalTime":608,"image":573,"keywords":609,"locale":620,"meta":621,"navigation":293,"path":622,"platform":623,"related":624,"section":627,"seo":628,"severity":629,"stem":630,"summary":631,"tags":632,"twitterCreator":573,"twitterSite":573,"type":636,"updatedAt":574,"__hash__":637},"content_ru/errors/linux/cron-bad-hour.md","Исправление ошибки cron: неверный час в расписании",[7,8,9,10],"Ubuntu 20.04 LTS","Ubuntu 22.04 LTS","Debian 11","CentOS 8","FixPedia Team",{"type":13,"value":14,"toc":560},"minimark",[15,20,42,52,56,98,102,110,154,160,168,171,220,227,231,258,262,265,330,363,366,391,394,398,556],[16,17,19],"h2",{"id":18},"что-означает-ошибка-bad-hour","Что означает ошибка bad hour",[21,22,23,24,28,29,32,33,37,38,41],"p",{},"Ошибка ",[25,26,27],"strong",{},"bad hour"," появляется в журнале событий cron, когда значение часа в записи crontab находится вне допустимого диапазона ",[25,30,31],{},"0–23",". Например, значение ",[34,35,36],"code",{},"25"," или ",[34,39,40],{},"—1"," вызовет у cron сообщение «bad hour», и запланированная задача не будет выполнена.",[43,44,49],"pre",{"className":45,"code":47,"language":48},[46],"language-text","Feb 18 08:00:01 hostname CRON[1234]: (root) CMD (echo \"test\" >> /var/log/test.log)\nFeb 18 09:00:01 hostname CRON[1235]: bad hour while reading /etc/crontab\n","text",[34,50,47],{"__ignoreMap":51},"",[16,53,55],{"id":54},"причины-возникновения","Причины возникновения",[57,58,59,72,86,92],"ul",{},[60,61,62,65,66,37,68,71],"li",{},[25,63,64],{},"Часовое значение вне диапазона"," – значение меньше 0 или больше 23 (например, ",[34,67,36],{},[34,69,70],{},"-2",").",[60,73,74,77,78,81,82,85],{},[25,75,76],{},"Использование нестандартного формата"," – попытка задать час с помощью буквенного обозначения (",[34,79,80],{},"Jan",", ",[34,83,84],{},"Feb",") или пробелов.",[60,87,88,91],{},[25,89,90],{},"Повреждение файла crontab"," – случайное добавление символов, лишних запятых или скобок вокруг числового значения часа.",[60,93,94,97],{},[25,95,96],{},"Неправильное копирование данных"," – при ручном редактировании файла с помощью текстового редактора копируется нечисловая часть (например, «час: 99»).",[16,99,101],{"id":100},"способы-решения","Способы решения",[103,104,106,107],"h3",{"id":105},"способ-1-редактирование-crontab-через-crontab-e","Способ 1: Редактирование crontab через ",[34,108,109],{},"crontab -e",[111,112,113,123,130,136,144],"ol",{},[60,114,115,118,119,122],{},[25,116,117],{},"Просмотрите текущий график"," – ",[34,120,121],{},"crontab -l",".",[60,124,125,118,128,122],{},[25,126,127],{},"Откройте файл для редактирования",[34,129,109],{},[60,131,132,135],{},[25,133,134],{},"Найдите строку с неверным часом"," (обычно она отмечена в журнале).",[60,137,138,141,142,122],{},[25,139,140],{},"Исправьте значение часа"," – убедитесь, что оно находится в диапазоне ",[34,143,31],{},[60,145,146,149,150,153],{},[25,147,148],{},"Сохраните и выйдите"," (Ctrl+O, Enter в nano; ",[34,151,152],{},":wq"," в vim).",[155,156,157],"blockquote",{},[21,158,159],{},"⚠️ Важно: Значения часов в cron отсчитываются от 0 (полночь) до 23 (последний час дня).",[103,161,163,164,167],{"id":162},"способ-2-использование-sed-для-замены-часа","Способ 2: Использование ",[34,165,166],{},"sed"," для замены часа",[21,169,170],{},"Если вам нужно быстро исправить несколько записей, выполните следующую команду:",[43,172,176],{"className":173,"code":174,"language":175,"meta":51,"style":51},"language-bash shiki shiki-themes github-light github-dark","# Замените любое значение часа, не соответствующее шаблону 0-23, на допустимое значение (например, 08)\ncrontab -l | sed -E 's/([0-9]{1,2})\\s+([0-9]{1,2})/\\1 \\2/' | crontab -\n","bash",[34,177,178,187],{"__ignoreMap":51},[179,180,183],"span",{"class":181,"line":182},"line",1,[179,184,186],{"class":185},"sJ8bj","# Замените любое значение часа, не соответствующее шаблону 0-23, на допустимое значение (например, 08)\n",[179,188,190,194,198,202,205,208,212,214,217],{"class":181,"line":189},2,[179,191,193],{"class":192},"sScJk","crontab",[179,195,197],{"class":196},"sj4cs"," -l",[179,199,201],{"class":200},"szBVR"," |",[179,203,204],{"class":192}," sed",[179,206,207],{"class":196}," -E",[179,209,211],{"class":210},"sZZnC"," 's/([0-9]{1,2})\\s+([0-9]{1,2})/\\1 \\2/'",[179,213,201],{"class":200},[179,215,216],{"class":192}," crontab",[179,218,219],{"class":210}," -\n",[21,221,222,224,225,122],{},[34,223,166],{}," удаляет лишние символы и приводит формат к стандартному виду. После выполнения команды проверьте результат: ",[34,226,121],{},[103,228,230],{"id":229},"способ-3-пересоздание-crontab","Способ 3: Пересоздание crontab",[111,232,233,241,250],{},[60,234,235,118,238,122],{},[25,236,237],{},"Сделайте резервную копию",[34,239,240],{},"crontab -l > ~/cron_backup.txt",[60,242,243,118,246,249],{},[25,244,245],{},"Удалите текущий график",[34,247,248],{},"crontab -r"," (подтвердите удаление).",[60,251,252,118,255,257],{},[25,253,254],{},"Добавьте правильные задания",[34,256,109],{}," и введите нужные строки.",[103,259,261],{"id":260},"способ-4-переход-на-systemd-timers-для-продвинутых-пользователей","Способ 4: Переход на systemd timers (для продвинутых пользователей)",[21,263,264],{},"Для новых систем, использующих systemd, рекомендуется заменить cron-задания на таймеры:",[43,266,270],{"className":267,"code":268,"language":269,"meta":51,"style":51},"language-ini shiki shiki-themes github-light github-dark","# /etc/systemd/system/myjob.timer\n[Unit]\nDescription=Запуск моей задачи каждый день в 09:00\n\n[Timer]\nOnCalendar=*-*-* 09:00:00\nPersistent=true\n\n[Install]\nWantedBy=timers.target\n","ini",[34,271,272,277,282,288,295,301,307,313,318,324],{"__ignoreMap":51},[179,273,274],{"class":181,"line":182},[179,275,276],{},"# /etc/systemd/system/myjob.timer\n",[179,278,279],{"class":181,"line":189},[179,280,281],{},"[Unit]\n",[179,283,285],{"class":181,"line":284},3,[179,286,287],{},"Description=Запуск моей задачи каждый день в 09:00\n",[179,289,291],{"class":181,"line":290},4,[179,292,294],{"emptyLinePlaceholder":293},true,"\n",[179,296,298],{"class":181,"line":297},5,[179,299,300],{},"[Timer]\n",[179,302,304],{"class":181,"line":303},6,[179,305,306],{},"OnCalendar=*-*-* 09:00:00\n",[179,308,310],{"class":181,"line":309},7,[179,311,312],{},"Persistent=true\n",[179,314,316],{"class":181,"line":315},8,[179,317,294],{"emptyLinePlaceholder":293},[179,319,321],{"class":181,"line":320},9,[179,322,323],{},"[Install]\n",[179,325,327],{"class":181,"line":326},10,[179,328,329],{},"WantedBy=timers.target\n",[43,331,333],{"className":267,"code":332,"language":269,"meta":51,"style":51},"# /etc/systemd/system/myjob.service\n[Unit]\nDescription=Выполнение моей задачи\n\n[Service]\nExecStart=/path/to/your/script.sh\n",[34,334,335,340,344,349,353,358],{"__ignoreMap":51},[179,336,337],{"class":181,"line":182},[179,338,339],{},"# /etc/systemd/system/myjob.service\n",[179,341,342],{"class":181,"line":189},[179,343,281],{},[179,345,346],{"class":181,"line":284},[179,347,348],{},"Description=Выполнение моей задачи\n",[179,350,351],{"class":181,"line":290},[179,352,294],{"emptyLinePlaceholder":293},[179,354,355],{"class":181,"line":297},[179,356,357],{},"[Service]\n",[179,359,360],{"class":181,"line":303},[179,361,362],{},"ExecStart=/path/to/your/script.sh\n",[21,364,365],{},"Включите и запустите таймер:",[43,367,369],{"className":173,"code":368,"language":175,"meta":51,"style":51},"systemctl enable myjob.timer\nsystemctl start myjob.timer\n",[34,370,371,382],{"__ignoreMap":51},[179,372,373,376,379],{"class":181,"line":182},[179,374,375],{"class":192},"systemctl",[179,377,378],{"class":210}," enable",[179,380,381],{"class":210}," myjob.timer\n",[179,383,384,386,389],{"class":181,"line":189},[179,385,375],{"class":192},[179,387,388],{"class":210}," start",[179,390,381],{"class":210},[392,393],"in-article-ad",{},[16,395,397],{"id":396},"профилактика","Профилактика",[57,399,400,524,534,544],{},[60,401,402,405,406],{},[25,403,404],{},"Проверяйте диапазоны перед сохранением"," – многие редакторы crontab имеют встроенную проверку; вы можете также использовать скрипт:",[43,407,409],{"className":173,"code":408,"language":175,"meta":51,"style":51},"crontab -l | while read line; do\n  hour=$(echo \"$line\" | awk '{print $2}')\n  if [[ $hour -lt 0 || $hour -gt 23 ]]; then\n    echo \"Неверный час в строке: $line\"\n  fi\ndone\n",[34,410,411,435,469,501,514,519],{"__ignoreMap":51},[179,412,413,415,417,419,422,425,428,432],{"class":181,"line":182},[179,414,193],{"class":192},[179,416,197],{"class":196},[179,418,201],{"class":200},[179,420,421],{"class":200}," while",[179,423,424],{"class":196}," read",[179,426,427],{"class":210}," line",[179,429,431],{"class":430},"sVt8B","; ",[179,433,434],{"class":200},"do\n",[179,436,437,440,443,446,449,452,455,458,460,463,466],{"class":181,"line":189},[179,438,439],{"class":430},"  hour",[179,441,442],{"class":200},"=",[179,444,445],{"class":430},"$(",[179,447,448],{"class":196},"echo",[179,450,451],{"class":210}," \"",[179,453,454],{"class":430},"$line",[179,456,457],{"class":210},"\"",[179,459,201],{"class":200},[179,461,462],{"class":192}," awk",[179,464,465],{"class":210}," '{print $2}'",[179,467,468],{"class":430},")\n",[179,470,471,474,477,480,483,486,489,492,495,498],{"class":181,"line":284},[179,472,473],{"class":200},"  if",[179,475,476],{"class":430}," [[ $hour ",[179,478,479],{"class":200},"-lt",[179,481,482],{"class":196}," 0",[179,484,485],{"class":200}," ||",[179,487,488],{"class":430}," $hour ",[179,490,491],{"class":200},"-gt",[179,493,494],{"class":196}," 23",[179,496,497],{"class":430}," ]]; ",[179,499,500],{"class":200},"then\n",[179,502,503,506,509,511],{"class":181,"line":290},[179,504,505],{"class":196},"    echo",[179,507,508],{"class":210}," \"Неверный час в строке: ",[179,510,454],{"class":430},[179,512,513],{"class":210},"\"\n",[179,515,516],{"class":181,"line":297},[179,517,518],{"class":200},"  fi\n",[179,520,521],{"class":181,"line":303},[179,522,523],{"class":200},"done\n",[60,525,526,529,530,533],{},[25,527,528],{},"Ведите журнал изменений"," – храните копии crontab в ",[34,531,532],{},"/etc/cron.d/backup/",", чтобы быстро восстановиться при ошибке.",[60,535,536,539,540,543],{},[25,537,538],{},"Используйте инструменты автодополения"," – такие как ",[34,541,542],{},"crontab-gtk"," (в графическом интерфейсе) или плагины редактора, которые подсвечивают недопустимые значения.",[60,545,546,118,549,37,552,555],{},[25,547,548],{},"Регулярно проверяйте логи",[34,550,551],{},"journalctl -u cron",[34,553,554],{},"/var/log/syslog"," помогут обнаружить ошибку сразу после её возникновения.",[557,558,559],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":51,"searchDepth":189,"depth":189,"links":561},[562,563,564,572],{"id":18,"depth":189,"text":19},{"id":54,"depth":189,"text":55},{"id":100,"depth":189,"text":101,"children":565},[566,568,570,571],{"id":105,"depth":284,"text":567},"Способ 1: Редактирование crontab через crontab -e",{"id":162,"depth":284,"text":569},"Способ 2: Использование sed для замены часа",{"id":229,"depth":284,"text":230},{"id":260,"depth":284,"text":261},{"id":396,"depth":189,"text":397},null,"2026-07-18 11:37:49","Исправьте ошибку cron «bad hour» — узнайте, почему часы указаны неверно, и как быстро их исправить с помощью редактора crontab.","easy",false,"5-10 мин","md",[581,584,587,590],{"question":582,"answer":583},"Почему cron выводит сообщение «bad hour»?","Это происходит, когда значение часа в записи crontab находится вне допустимого диапазона 0–23. Cron не может распознать такое значение и завершает работу с ошибкой.",{"question":585,"answer":586},"Можно ли исправить расписание, не используя редактор командной строки?","Да. Вы можете использовать `sed` для замены неверного часа или полностью пересоздать файл crontab, а затем добавить правильные записи.",{"question":588,"answer":589},"Что делать, если после исправления ошибка не исчезает?","Убедитесь, что процесс cron запущен (`systemctl status cron`), проверьте синтаксис всей строки с помощью `crontab -l` и перезапустите сервис при необходимости.",{"question":591,"answer":592},"Как предотвратить появление этой ошибки в будущем?","Всегда проверяйте диапазоны значений перед сохранением, используйте инструменты автодополнения crontab или ведите журнал изменений в отдельном файле.",[594,597,600,603,605],{"name":595,"text":596},"Проверьте текущий график задач","Выполните `crontab -l`, чтобы увидеть все запланированные задания и найти строку с неверным значением часа.",{"name":598,"text":599},"Определите проблемную запись","Недопустимое значение часа обычно находится в диапазоне 0–23. Обратите внимание на точную строку, которая вызывает ошибку.",{"name":601,"text":602},"Откройте crontab для редактирования","Запустите `crontab -e`. Система откроет файл в стандартном редакторе (например, nano или vim).",{"name":140,"text":604},"Измените неверный час на правильное значение (0–23) или удалите всю строку, если задание больше не требуется.",{"name":606,"text":607},"Сохраните и проверьте","Сохраните изменения, выйдите из редактора и запустите `crontab -l`, чтобы убедиться, что расписание теперь корректно.","PT5M",[610,611,612,613,614,615,616,617,618,619],"ошибка cron bad hour","неверный час в crontab","cron не запускает задачу","исправить расписание cron","проверить crontab","значение часа cron 0-23","код ошибки cron bad hour","починить cron задачу","редактировать crontab","cron не работает","ru_RU",{},"/errors/linux/cron-bad-hour","linux",[625,626],"/errors/linux/cron-bad-minute","/guides/linux/crontab-setup","Ошибки Linux",{"title":5,"description":575},"low","errors/linux/cron-bad-hour","Статья объясняет, что означает ошибка cron 'bad hour', почему она возникает и как исправить расписание crontab, чтобы задачи запускались в нужное время.",[633,634,635,175],"cron","Linux","troubleshooting","error","jbn6Fuv88qvzw836kN9eXElzhXcLtnAkO-4y239-JsU",{"data":639,"body":640},{},{"type":641,"children":642},"root",[643],{"type":644,"tag":21,"props":645,"children":646},"element",{},[647],{"type":48,"value":583},{"data":649,"body":650},{},{"type":641,"children":651},[652],{"type":644,"tag":21,"props":653,"children":654},{},[655,657,662],{"type":48,"value":656},"Да. Вы можете использовать ",{"type":644,"tag":34,"props":658,"children":660},{"className":659},[],[661],{"type":48,"value":166},{"type":48,"value":663}," для замены неверного часа или полностью пересоздать файл crontab, а затем добавить правильные записи.",{"data":665,"body":666},{},{"type":641,"children":667},[668],{"type":644,"tag":21,"props":669,"children":670},{},[671,673,679,681,686],{"type":48,"value":672},"Убедитесь, что процесс cron запущен (",{"type":644,"tag":34,"props":674,"children":676},{"className":675},[],[677],{"type":48,"value":678},"systemctl status cron",{"type":48,"value":680},"), проверьте синтаксис всей строки с помощью ",{"type":644,"tag":34,"props":682,"children":684},{"className":683},[],[685],{"type":48,"value":121},{"type":48,"value":687}," и перезапустите сервис при необходимости.",{"data":689,"body":690},{},{"type":641,"children":691},[692],{"type":644,"tag":21,"props":693,"children":694},{},[695],{"type":48,"value":592},{"data":697,"body":698},{},{"type":641,"children":699},[700],{"type":644,"tag":21,"props":701,"children":702},{},[703,705,710],{"type":48,"value":704},"Выполните ",{"type":644,"tag":34,"props":706,"children":708},{"className":707},[],[709],{"type":48,"value":121},{"type":48,"value":711},", чтобы увидеть все запланированные задания и найти строку с неверным значением часа.",{"data":713,"body":714},{},{"type":641,"children":715},[716],{"type":644,"tag":21,"props":717,"children":718},{},[719],{"type":48,"value":599},{"data":721,"body":722},{},{"type":641,"children":723},[724],{"type":644,"tag":21,"props":725,"children":726},{},[727,729,734],{"type":48,"value":728},"Запустите ",{"type":644,"tag":34,"props":730,"children":732},{"className":731},[],[733],{"type":48,"value":109},{"type":48,"value":735},". Система откроет файл в стандартном редакторе (например, nano или vim).",{"data":737,"body":738},{},{"type":641,"children":739},[740],{"type":644,"tag":21,"props":741,"children":742},{},[743],{"type":48,"value":604},{"data":745,"body":746},{},{"type":641,"children":747},[748],{"type":644,"tag":21,"props":749,"children":750},{},[751,753,758],{"type":48,"value":752},"Сохраните изменения, выйдите из редактора и запустите ",{"type":644,"tag":34,"props":754,"children":756},{"className":755},[],[757],{"type":48,"value":121},{"type":48,"value":759},", чтобы убедиться, что расписание теперь корректно.",[761],{"id":762,"title":763,"appliesTo":764,"author":11,"body":768,"canonical":573,"code":1545,"createdAt":1546,"description":1547,"difficulty":576,"draft":577,"estimatedTime":578,"extension":579,"faq":1548,"howToSteps":1561,"howToTotalTime":1574,"image":573,"keywords":1575,"locale":620,"meta":1584,"navigation":293,"path":625,"platform":623,"related":1585,"section":627,"seo":1588,"severity":1589,"stem":1590,"summary":1591,"tags":1592,"twitterCreator":573,"twitterSite":573,"type":636,"updatedAt":1546,"__hash__":1597},"content_ru/errors/linux/cron-bad-minute.md","Ошибка cron 'bad minute': причины и способы исправления",[765,766,767],"cron (crontab)","Linux (Ubuntu, CentOS, Debian и др.)","任何使用cron的系统",{"type":13,"value":769,"toc":1532},[770,774,790,796,802,805,811,827,830,832,835,922,935,937,941,944,1104,1111,1114,1187,1191,1194,1348,1359,1362,1445,1447,1449,1452,1526,1529],[16,771,773],{"id":772},"что-означает-ошибка-bad-minute","Что означает ошибка \"bad minute\"",[21,775,23,776,779,780,782,783,785,786,789],{},[25,777,778],{},"\"bad minute\""," в cron — это синтаксическая ошибка, которая возникает при попытке демона ",[34,781,633],{}," прочитать и выполнить задание из файла ",[34,784,193],{},". Она указывает, что в поле ",[25,787,788],{},"\"минуты\""," расписания указано недопустимое значение.",[21,791,792,795],{},[25,793,794],{},"Полный текст ошибки в логах"," обычно выглядит так:",[43,797,800],{"className":798,"code":799,"language":48},[46],"(cron) error (bad minute)\n",[34,801,799],{"__ignoreMap":51},[21,803,804],{},"или",[43,806,809],{"className":807,"code":808,"language":48},[46],"CRON[12345]: (username) BAD MINUTE (значение)\n",[34,810,808],{"__ignoreMap":51},[21,812,813,816,817,37,819,822,823,826],{},[25,814,815],{},"Контекст появления",": Ошибка появляется в системном логе (",[34,818,554],{},[34,820,821],{},"/var/log/cron",") в момент, когда cron пытается запустить задание (обычно в начале каждой минуты). Само задание ",[25,824,825],{},"не будет выполнено"," до исправления синтаксиса.",[21,828,829],{},"Поле \"минуты\" в формате crontab — это первое из пяти чисел/спецсимволов в строке расписания. Оно должно соответствовать строгим правилам.",[16,831,55],{"id":54},[21,833,834],{},"Ошибка \"bad minute\" возникает только из-за некорректного значения в первом поле расписания. Конкретные причины:",[111,836,837,855,878,891,903,916],{},[60,838,839,842,843,81,846,81,849,81,852,122],{},[25,840,841],{},"Значение вне диапазона 0-59",". Например, ",[34,844,845],{},"60",[34,847,848],{},"61",[34,850,851],{},"-1",[34,853,854],{},"100",[60,856,857,842,860,81,863,81,866,869,870,873,874,877],{},[25,858,859],{},"Нечисловое значение",[34,861,862],{},"sixty",[34,864,865],{},"first",[34,867,868],{},"* * * * *"," (если первое поле — ",[34,871,872],{},"*",", то это корректно, но если там ",[34,875,876],{},"* *"," с лишним символом, будет ошибка).",[60,879,880,842,883,886,887,890],{},[25,881,882],{},"Пустое поле или пробел вместо значения",[34,884,885],{},"  * * * * *"," (пробел в начале) или ",[34,888,889],{}," * * * * *"," (если редактор заменил табуляцию).",[60,892,893,842,896,81,899,902],{},[25,894,895],{},"Использование дробного числа",[34,897,898],{},"0.5",[34,900,901],{},"1.5",". Допустимы только целые числа.",[60,904,905,842,908,911,912,915],{},[25,906,907],{},"Некорректное сочетание диапазона и шага",[34,909,910],{},"0-60/5"," (диапазон выходит за 59) или ",[34,913,914],{},"*/0"," (деление на ноль).",[60,917,918,921],{},[25,919,920],{},"Символы, не являющиеся частью синтаксиса crontab",". Например, запятые без чисел, буквы, специальные символы в неположенном месте.",[155,923,924],{},[21,925,926,927,930,931,934],{},"⚠️ ",[25,928,929],{},"Важно:"," Поле \"минуты\" в crontab ",[25,932,933],{},"не поддерживает"," имена месяцев или дней недели (это для полей \"месяц\" и \"день недели\"). Только числа 0-59, диапазоны, списки и шаги.",[16,936,101],{"id":100},[103,938,940],{"id":939},"способ-1-прямое-редактирование-crontab","Способ 1: Прямое редактирование crontab",[21,942,943],{},"Самый частый и прямой способ — найти и исправить ошибочную строку в вашем пользовательском crontab.",[111,945,946,974,1036,1070,1079],{},[60,947,948,950,951,963,966,967,37,970,973],{},[25,949,601],{},":",[43,952,954],{"className":173,"code":953,"language":175,"meta":51,"style":51},"crontab -e\n",[34,955,956],{"__ignoreMap":51},[179,957,958,960],{"class":181,"line":182},[179,959,193],{"class":192},[179,961,962],{"class":196}," -e\n",[964,965],"br",{},"По умолчанию откроется редактор (обычно ",[34,968,969],{},"nano",[34,971,972],{},"vim","). Если это первый раз, может предложить выбрать редактор.",[60,975,976,979,980,983,984,1010,1012,1013,983,1016],{},[25,977,978],{},"Найдите строку с ошибкой",". Если вы знаете, какое задание не работает, найдите его. Если нет, просмотрите весь файл. Ошибочная строка будет иметь некорректное значение в первом поле. Примеры ",[25,981,982],{},"некорректных"," строк:",[43,985,988],{"className":986,"code":987,"language":193,"meta":51,"style":51},"language-crontab shiki shiki-themes github-light github-dark","60 * * * * /path/to/script.sh     # Ошибка: 60 > 59\n*/0 * * * * /path/to/script.sh    # Ошибка: шаг 0\n-5 * * * * /path/to/script.sh     # Ошибка: отрицательное число\n* * * * *                        # Корректно (каждую минуту)\n",[34,989,990,995,1000,1005],{"__ignoreMap":51},[179,991,992],{"class":181,"line":182},[179,993,994],{},"60 * * * * /path/to/script.sh     # Ошибка: 60 > 59\n",[179,996,997],{"class":181,"line":189},[179,998,999],{},"*/0 * * * * /path/to/script.sh    # Ошибка: шаг 0\n",[179,1001,1002],{"class":181,"line":284},[179,1003,1004],{},"-5 * * * * /path/to/script.sh     # Ошибка: отрицательное число\n",[179,1006,1007],{"class":181,"line":290},[179,1008,1009],{},"* * * * *                        # Корректно (каждую минуту)\n",[964,1011],{},"Примеры ",[25,1014,1015],{},"корректных",[43,1017,1019],{"className":986,"code":1018,"language":193,"meta":51,"style":51},"0 * * * * /path/to/script.sh      # Каждый час в 0 минут\n*/5 * * * * /path/to/script.sh    # Каждые 5 минут\n0-30/5 * * * * /path/to/script.sh # Каждые 5 минут с 0 по 30\n",[34,1020,1021,1026,1031],{"__ignoreMap":51},[179,1022,1023],{"class":181,"line":182},[179,1024,1025],{},"0 * * * * /path/to/script.sh      # Каждый час в 0 минут\n",[179,1027,1028],{"class":181,"line":189},[179,1029,1030],{},"*/5 * * * * /path/to/script.sh    # Каждые 5 минут\n",[179,1032,1033],{"class":181,"line":284},[179,1034,1035],{},"0-30/5 * * * * /path/to/script.sh # Каждые 5 минут с 0 по 30\n",[60,1037,1038,1041,1042],{},[25,1039,1040],{},"Исправьте поле минут"," на допустимое значение (0-59, диапазон, шаг, список). Сохраните файл и выйдите из редактора.",[57,1043,1044,1062],{},[60,1045,1046,1047,1049,1050,1053,1054,1057,1058,1061],{},"В ",[34,1048,969],{},": ",[34,1051,1052],{},"Ctrl+X",", затем ",[34,1055,1056],{},"Y"," (сохранить), ",[34,1059,1060],{},"Enter"," (подтвердить имя).",[60,1063,1046,1064,1049,1066,1053,1068,122],{},[34,1065,972],{},[34,1067,152],{},[34,1069,1060],{},[60,1071,1072,1075,1076,1078],{},[25,1073,1074],{},"Убедитесь, что crontab загружен",". Команда ",[34,1077,109],{}," автоматически проверяет синтаксис при сохранении и сообщит об ошибке, если она осталась. Если сохранение прошло без предупреждений, синтаксис корректен.",[60,1080,1081,1084,1085],{},[25,1082,1083],{},"Проверьте логи"," через 1-2 минуты, чтобы убедиться, что ошибка исчезла:",[43,1086,1088],{"className":173,"code":1087,"language":175,"meta":51,"style":51},"grep -i \"bad minute\" /var/log/syslog\n",[34,1089,1090],{"__ignoreMap":51},[179,1091,1092,1095,1098,1101],{"class":181,"line":182},[179,1093,1094],{"class":192},"grep",[179,1096,1097],{"class":196}," -i",[179,1099,1100],{"class":210}," \"bad minute\"",[179,1102,1103],{"class":210}," /var/log/syslog\n",[103,1105,1107,1108,1110],{"id":1106},"способ-2-валидация-через-crontab-l-и-внешние-инструменты","Способ 2: Валидация через ",[34,1109,121],{}," и внешние инструменты",[21,1112,1113],{},"Если crontab большой или вы не уверены в синтаксисе, используйте дополнительные методы проверки.",[111,1115,1116,1145,1159],{},[60,1117,1118,950,1121,1138,1140,1141,1144],{},[25,1119,1120],{},"Выведите текущий crontab в файл и проверьте вручную",[43,1122,1124],{"className":173,"code":1123,"language":175,"meta":51,"style":51},"crontab -l > mycron.txt\n",[34,1125,1126],{"__ignoreMap":51},[179,1127,1128,1130,1132,1135],{"class":181,"line":182},[179,1129,193],{"class":192},[179,1131,197],{"class":196},[179,1133,1134],{"class":200}," >",[179,1136,1137],{"class":210}," mycron.txt\n",[964,1139],{},"Откройте ",[34,1142,1143],{},"mycron.txt"," в любом редакторе и внимательно проверьте первое поле каждой строки.",[60,1146,1147,1150,1151,1158],{},[25,1148,1149],{},"Используйте онлайн-валидатор"," для сложных расписаний. Откройте ",[1152,1153,1157],"a",{"href":1154,"rel":1155},"https://crontab.guru",[1156],"nofollow","crontab.guru"," и введите ваше расписание (первые 5 полей). Сервис покажет, как часто оно сработает, и подсветит ошибки.",[60,1160,1161,1166,1167,1184,1186],{},[25,1162,1163,1164],{},"Проверьте синтаксис с помощью утилиты ",[34,1165,193],{}," (некоторые дистрибутивы):",[43,1168,1170],{"className":173,"code":1169,"language":175,"meta":51,"style":51},"crontab -c -l  # Флаг -c может проверять синтаксис (зависит от версии cron)\n",[34,1171,1172],{"__ignoreMap":51},[179,1173,1174,1176,1179,1181],{"class":181,"line":182},[179,1175,193],{"class":192},[179,1177,1178],{"class":196}," -c",[179,1180,197],{"class":196},[179,1182,1183],{"class":185},"  # Флаг -c может проверять синтаксис (зависит от версии cron)\n",[964,1185],{},"Если команда недоступна, полагайтесь на логи.",[103,1188,1190],{"id":1189},"способ-3-анализ-системных-логов-для-поиска-конкретной-строки","Способ 3: Анализ системных логов для поиска конкретной строки",[21,1192,1193],{},"Если вы не знаете, в каком именно crontab (пользовательском или системном) ошибка, ищите в логах.",[111,1195,1196,1314,1335],{},[60,1197,1198,1201,1202],{},[25,1199,1200],{},"Просмотрите логи cron",". В зависимости от дистрибутива:",[57,1203,1204,1229,1252],{},[60,1205,1206,1209,1210],{},[25,1207,1208],{},"Ubuntu/Debian",":\n",[43,1211,1213],{"className":173,"code":1212,"language":175,"meta":51,"style":51},"sudo grep -i \"bad minute\" /var/log/syslog\n",[34,1214,1215],{"__ignoreMap":51},[179,1216,1217,1220,1223,1225,1227],{"class":181,"line":182},[179,1218,1219],{"class":192},"sudo",[179,1221,1222],{"class":210}," grep",[179,1224,1097],{"class":196},[179,1226,1100],{"class":210},[179,1228,1103],{"class":210},[60,1230,1231,1209,1234],{},[25,1232,1233],{},"CentOS/RHEL/Fedora",[43,1235,1237],{"className":173,"code":1236,"language":175,"meta":51,"style":51},"sudo grep -i \"bad minute\" /var/log/cron\n",[34,1238,1239],{"__ignoreMap":51},[179,1240,1241,1243,1245,1247,1249],{"class":181,"line":182},[179,1242,1219],{"class":192},[179,1244,1222],{"class":210},[179,1246,1097],{"class":196},[179,1248,1100],{"class":210},[179,1250,1251],{"class":210}," /var/log/cron\n",[60,1253,1254,1257,1258],{},[25,1255,1256],{},"Systemd-системы"," (современные):\n",[43,1259,1261],{"className":173,"code":1260,"language":175,"meta":51,"style":51},"sudo journalctl -u cron -b | grep -i \"bad minute\"\n# или для crond\nsudo journalctl -u crond -b | grep -i \"bad minute\"\n",[34,1262,1263,1288,1293],{"__ignoreMap":51},[179,1264,1265,1267,1270,1273,1276,1279,1281,1283,1285],{"class":181,"line":182},[179,1266,1219],{"class":192},[179,1268,1269],{"class":210}," journalctl",[179,1271,1272],{"class":196}," -u",[179,1274,1275],{"class":210}," cron",[179,1277,1278],{"class":196}," -b",[179,1280,201],{"class":200},[179,1282,1222],{"class":192},[179,1284,1097],{"class":196},[179,1286,1287],{"class":210}," \"bad minute\"\n",[179,1289,1290],{"class":181,"line":189},[179,1291,1292],{"class":185},"# или для crond\n",[179,1294,1295,1297,1299,1301,1304,1306,1308,1310,1312],{"class":181,"line":284},[179,1296,1219],{"class":192},[179,1298,1269],{"class":210},[179,1300,1272],{"class":196},[179,1302,1303],{"class":210}," crond",[179,1305,1278],{"class":196},[179,1307,201],{"class":200},[179,1309,1222],{"class":192},[179,1311,1097],{"class":196},[179,1313,1287],{"class":210},[60,1315,1316,1319,1320,1326,1328,1329,1332,1333,122],{},[25,1317,1318],{},"В выводе вы увидите временную метку и имя пользователя",", чей crontab вызвал ошибку. Пример:",[43,1321,1324],{"className":1322,"code":1323,"language":48},[46],"Feb 17 10:15:01 server CRON[12345]: (user) BAD MINUTE (60)\n",[34,1325,1323],{"__ignoreMap":51},[964,1327],{},"Это означает, что у пользователя ",[34,1330,1331],{},"user"," в его crontab есть строка, где в поле минут указано ",[34,1334,845],{},[60,1336,1337,1340,1341,1343,1344,1347],{},[25,1338,1339],{},"Перейдите к crontab этого пользователя"," (если это вы, то ",[34,1342,109],{},"; если другой пользователь, то ",[34,1345,1346],{},"sudo crontab -u username -e",") и исправьте указанное значение.",[103,1349,1351,1352,1355,1356],{"id":1350},"способ-4-проверка-системного-crontab-etccrontab-и-файлов-в-etccrond","Способ 4: Проверка системного crontab (",[34,1353,1354],{},"/etc/crontab",") и файлов в ",[34,1357,1358],{},"/etc/cron.d/",[21,1360,1361],{},"Ошибка может быть не в пользовательском crontab, а в системном расписании.",[111,1363,1364,1391,1433],{},[60,1365,1366,950,1369,1384,1386,1387,1390],{},[25,1367,1368],{},"Проверьте системный crontab",[43,1370,1372],{"className":173,"code":1371,"language":175,"meta":51,"style":51},"sudo cat /etc/crontab\n",[34,1373,1374],{"__ignoreMap":51},[179,1375,1376,1378,1381],{"class":181,"line":182},[179,1377,1219],{"class":192},[179,1379,1380],{"class":210}," cat",[179,1382,1383],{"class":210}," /etc/crontab\n",[964,1385],{},"Формат здесь отличается: после минут идут ",[25,1388,1389],{},"часы, день месяца, месяц, день недели, ПОЛЬЗОВАТЕЛЬ",", а затем команда. Убедитесь, что поле минут корректно.",[60,1392,1393,950,1398,1427,1429,1430,1432],{},[25,1394,1395,1396],{},"Проверьте дополнительные файлы в ",[34,1397,1358],{},[43,1399,1401],{"className":173,"code":1400,"language":175,"meta":51,"style":51},"sudo ls /etc/cron.d/\nsudo cat /etc/cron.d/*  # Просмотрите каждый файл\n",[34,1402,1403,1413],{"__ignoreMap":51},[179,1404,1405,1407,1410],{"class":181,"line":182},[179,1406,1219],{"class":192},[179,1408,1409],{"class":210}," ls",[179,1411,1412],{"class":210}," /etc/cron.d/\n",[179,1414,1415,1417,1419,1422,1424],{"class":181,"line":189},[179,1416,1219],{"class":192},[179,1418,1380],{"class":210},[179,1420,1421],{"class":210}," /etc/cron.d/",[179,1423,872],{"class":196},[179,1425,1426],{"class":185},"  # Просмотрите каждый файл\n",[964,1428],{},"Эти файлы используют тот же синтаксис, что и ",[34,1431,1354],{}," (с указанием пользователя). Ищите некорректные значения минут.",[60,1434,1435,1438,1439,37,1442,122],{},[25,1436,1437],{},"Исправьте найденные ошибки"," с помощью ",[34,1440,1441],{},"sudo nano",[34,1443,1444],{},"sudo vim",[392,1446],{},[16,1448,397],{"id":396},[21,1450,1451],{},"Чтобы избежать ошибки \"bad minute\" в будущем:",[57,1453,1454,1460,1491,1501,1511,1520],{},[60,1455,1456,1459],{},[25,1457,1458],{},"Всегда проверяйте диапазон 0-59"," для поля минут. Запомните: 60 минут в часе нет.",[60,1461,1462,1209,1465],{},[25,1463,1464],{},"Используйте проверенные шаблоны",[57,1466,1467,1473,1479,1485],{},[60,1468,1469,1472],{},[34,1470,1471],{},"*/N"," — каждые N минут (N от 1 до 59).",[60,1474,1475,1478],{},[34,1476,1477],{},"M-N"," — диапазон от M до N (оба в 0-59).",[60,1480,1481,1484],{},[34,1482,1483],{},"M,N,O"," — список конкретных минут.",[60,1486,1487,1490],{},[34,1488,1489],{},"M-N/K"," — диапазон с шагом K.",[60,1492,1493,1496,1497,1500],{},[25,1494,1495],{},"Тестируйте сложные расписания"," на ",[1152,1498,1157],{"href":1154,"rel":1499},[1156]," перед добавлением в crontab.",[60,1502,1503,1506,1507,1510],{},[25,1504,1505],{},"Регулярно просматривайте логи cron"," (",[34,1508,1509],{},"grep CRON /var/log/syslog",") на наличие других предупреждений.",[60,1512,1513,1516,1517,1519],{},[25,1514,1515],{},"При добавлении новых заданий"," проверяйте синтаксис сразу после сохранения crontab. Текстовый редактор ",[34,1518,969],{}," часто подсвечивает синтаксис, но окончательную проверку делает сам cron.",[60,1521,1522,1525],{},[25,1523,1524],{},"Для критических заданий"," добавляйте простой тестовый скрипт, который пишет в файл, и проверяйте его выполнение через несколько минут после настройки.",[21,1527,1528],{},"Следуя этим правилам, вы гарантированно избежите синтаксических ошибок в cron и обеспечите надёжную работу планировщика.",[557,1530,1531],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":51,"searchDepth":189,"depth":189,"links":1533},[1534,1535,1536,1544],{"id":772,"depth":189,"text":773},{"id":54,"depth":189,"text":55},{"id":100,"depth":189,"text":101,"children":1537},[1538,1539,1541,1542],{"id":939,"depth":284,"text":940},{"id":1106,"depth":284,"text":1540},"Способ 2: Валидация через crontab -l и внешние инструменты",{"id":1189,"depth":284,"text":1190},{"id":1350,"depth":284,"text":1543},"Способ 4: Проверка системного crontab (/etc/crontab) и файлов в /etc/cron.d/",{"id":396,"depth":189,"text":397},"bad minute","2026-02-17 14:32:11","Пошаговая инструкция по исправлению ошибки 'bad minute' в cron. Узнайте, почему возникает проблема с расписанием и как быстро её решить. Проверенные методы для Linux.",[1549,1552,1555,1558],{"question":1550,"answer":1551},"Почему в cron возникает ошибка 'bad minute'?","Ошибка возникает, когда в поле 'минуты' crontab указано значение вне допустимого диапазона (0-59), нечисловое значение или пустая строка. Cron строго проверяет синтаксис.",{"question":1553,"answer":1554},"Как проверить crontab на наличие ошибок 'bad minute'?","Выполните `crontab -l` для просмотра текущих заданий. Ошибки также будут отображены в системном логе при попытке запуска: `grep CRON /var/log/syslog` или `journalctl -u cron`.",{"question":1556,"answer":1557},"Можно ли использовать в cron диапазоны и шаги для минут?","Да, например, `0-30/5` (каждые 5 минут от 0 до 30) или `*/15` (каждые 15 минут). Но диапазон должен быть в пределах 0-59, а шаг — целым положительным числом.",{"question":1559,"answer":1560},"Что делать, если cron не запускается после исправления ошибки?","Убедитесь, что вы сохранили файл crontab (в редакторе `crontab -e`). Перезапустите демон cron: `sudo systemctl restart cron` (или `crond` на CentOS). Проверьте права на выполнение скрипта.",[1562,1565,1568,1571],{"name":1563,"text":1564},"Проверьте синтаксис расписания в crontab","Откройте crontab командой `crontab -e` и найдите строку, вызывающую ошибку. Убедитесь, что поле минут (первое после `* * * * *`) содержит число от 0 до 59, диапазон (например, `0-59`) или корректный шаг (`*/1`).",{"name":1566,"text":1567},"Исправьте некорректные значения минут","Замените недопустимые значения (например, `60`, `-1`, `abc`) на корректные. Для ежечасного запуска в 0 минут используйте `0 * * * *`. Для каждых 5 минут — `*/5 * * * *`.",{"name":1569,"text":1570},"Проверьте системные логи cron","Выполните `grep -i 'bad minute' /var/log/syslog` (Ubuntu/Debian) или `grep -i 'bad minute' /var/log/cron` (CentOS/RHEL). Лог покажет точное время и строку с ошибкой.",{"name":1572,"text":1573},"Перезагрузите службу cron","После исправления сохраните crontab (Ctrl+X, затем Y в nano). Перезапустите демон: `sudo systemctl restart cron` (или `sudo systemctl restart crond`).","PT10M",[1576,1577,1578,1579,1580,1581,1582,1583],"cron bad minute","ошибка расписания cron","неправильные минуты в cron","как исправить cron ошибку","cron job не работает","cron syntax error","минуты в cron больше 59","cron tab ошибка",{},[1586,1587,622],"/errors/linux/cron-job-not-running","/guides/linux/cron-setup",{"title":763,"description":1547},"medium","errors/linux/cron-bad-minute","Статья объясняет, что означает ошибка 'bad minute' в cron, какие значения минут являются корректными, и как исправить неверное расписание. Вы научитесь диагностировать проблему и настраивать cron без ошибок.",[633,623,1593,1594,1595,1596],"расписание","cronjob","scheduler","sysadmin","vKkwQLeuVtfrvdwnMLpxRY7koyMZG8eas96VTxt8Qqs"]