[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/linux/cron-bad-minute":3,"mdc--6xq6fu-key":901,"mdc--apgqal-key":911,"mdc-fdjmjb-key":940,"mdc--2r5st3-key":965,"mdc--ftrbc5-key":997,"mdc--28rdbq-key":1036,"mdc-4dilr8-key":1080,"mdc-b9aesp-key":1104,"related-/errors/linux/cron-job-not-running,/guides/linux/cron-setup,/errors/linux/cron-bad-hour":1126},{"id":4,"title":5,"appliesTo":6,"author":10,"body":11,"canonical":836,"code":837,"createdAt":838,"description":839,"difficulty":840,"draft":841,"estimatedTime":842,"extension":843,"faq":844,"howToSteps":857,"howToTotalTime":870,"image":836,"keywords":871,"locale":880,"meta":881,"navigation":882,"path":883,"platform":884,"related":885,"section":889,"seo":890,"severity":891,"stem":892,"summary":893,"tags":894,"twitterCreator":836,"twitterSite":836,"type":899,"updatedAt":838,"__hash__":900},"content_ru/errors/linux/cron-bad-minute.md","Ошибка cron 'bad minute': причины и способы исправления",[7,8,9],"cron (crontab)","Linux (Ubuntu, CentOS, Debian и др.)","任何使用cron的系统","FixPedia Team",{"type":12,"value":13,"toc":823},"minimark",[14,19,41,47,57,60,66,84,87,91,94,185,199,203,208,211,386,394,397,473,477,480,635,646,649,732,735,739,742,816,819],[15,16,18],"h2",{"id":17},"что-означает-ошибка-bad-minute","Что означает ошибка \"bad minute\"",[20,21,22,23,27,28,32,33,36,37,40],"p",{},"Ошибка ",[24,25,26],"strong",{},"\"bad minute\""," в cron — это синтаксическая ошибка, которая возникает при попытке демона ",[29,30,31],"code",{},"cron"," прочитать и выполнить задание из файла ",[29,34,35],{},"crontab",". Она указывает, что в поле ",[24,38,39],{},"\"минуты\""," расписания указано недопустимое значение.",[20,42,43,46],{},[24,44,45],{},"Полный текст ошибки в логах"," обычно выглядит так:",[48,49,54],"pre",{"className":50,"code":52,"language":53},[51],"language-text","(cron) error (bad minute)\n","text",[29,55,52],{"__ignoreMap":56},"",[20,58,59],{},"или",[48,61,64],{"className":62,"code":63,"language":53},[51],"CRON[12345]: (username) BAD MINUTE (значение)\n",[29,65,63],{"__ignoreMap":56},[20,67,68,71,72,75,76,79,80,83],{},[24,69,70],{},"Контекст появления",": Ошибка появляется в системном логе (",[29,73,74],{},"/var/log/syslog"," или ",[29,77,78],{},"/var/log/cron",") в момент, когда cron пытается запустить задание (обычно в начале каждой минуты). Само задание ",[24,81,82],{},"не будет выполнено"," до исправления синтаксиса.",[20,85,86],{},"Поле \"минуты\" в формате crontab — это первое из пяти чисел/спецсимволов в строке расписания. Оно должно соответствовать строгим правилам.",[15,88,90],{"id":89},"причины-возникновения","Причины возникновения",[20,92,93],{},"Ошибка \"bad minute\" возникает только из-за некорректного значения в первом поле расписания. Конкретные причины:",[95,96,97,118,141,154,166,179],"ol",{},[98,99,100,103,104,107,108,107,111,107,114,117],"li",{},[24,101,102],{},"Значение вне диапазона 0-59",". Например, ",[29,105,106],{},"60",", ",[29,109,110],{},"61",[29,112,113],{},"-1",[29,115,116],{},"100",".",[98,119,120,103,123,107,126,107,129,132,133,136,137,140],{},[24,121,122],{},"Нечисловое значение",[29,124,125],{},"sixty",[29,127,128],{},"first",[29,130,131],{},"* * * * *"," (если первое поле — ",[29,134,135],{},"*",", то это корректно, но если там ",[29,138,139],{},"* *"," с лишним символом, будет ошибка).",[98,142,143,103,146,149,150,153],{},[24,144,145],{},"Пустое поле или пробел вместо значения",[29,147,148],{},"  * * * * *"," (пробел в начале) или ",[29,151,152],{}," * * * * *"," (если редактор заменил табуляцию).",[98,155,156,103,159,107,162,165],{},[24,157,158],{},"Использование дробного числа",[29,160,161],{},"0.5",[29,163,164],{},"1.5",". Допустимы только целые числа.",[98,167,168,103,171,174,175,178],{},[24,169,170],{},"Некорректное сочетание диапазона и шага",[29,172,173],{},"0-60/5"," (диапазон выходит за 59) или ",[29,176,177],{},"*/0"," (деление на ноль).",[98,180,181,184],{},[24,182,183],{},"Символы, не являющиеся частью синтаксиса crontab",". Например, запятые без чисел, буквы, специальные символы в неположенном месте.",[186,187,188],"blockquote",{},[20,189,190,191,194,195,198],{},"⚠️ ",[24,192,193],{},"Важно:"," Поле \"минуты\" в crontab ",[24,196,197],{},"не поддерживает"," имена месяцев или дней недели (это для полей \"месяц\" и \"день недели\"). Только числа 0-59, диапазоны, списки и шаги.",[15,200,202],{"id":201},"способы-решения","Способы решения",[204,205,207],"h3",{"id":206},"способ-1-прямое-редактирование-crontab","Способ 1: Прямое редактирование crontab",[20,209,210],{},"Самый частый и прямой способ — найти и исправить ошибочную строку в вашем пользовательском crontab.",[95,212,213,249,314,350,360],{},[98,214,215,218,219,238,241,242,75,245,248],{},[24,216,217],{},"Откройте crontab для редактирования",":",[48,220,224],{"className":221,"code":222,"language":223,"meta":56,"style":56},"language-bash shiki shiki-themes github-light github-dark","crontab -e\n","bash",[29,225,226],{"__ignoreMap":56},[227,228,231,234],"span",{"class":229,"line":230},"line",1,[227,232,35],{"class":233},"sScJk",[227,235,237],{"class":236},"sj4cs"," -e\n",[239,240],"br",{},"По умолчанию откроется редактор (обычно ",[29,243,244],{},"nano",[29,246,247],{},"vim","). Если это первый раз, может предложить выбрать редактор.",[98,250,251,254,255,258,259,288,290,291,258,294],{},[24,252,253],{},"Найдите строку с ошибкой",". Если вы знаете, какое задание не работает, найдите его. Если нет, просмотрите весь файл. Ошибочная строка будет иметь некорректное значение в первом поле. Примеры ",[24,256,257],{},"некорректных"," строк:",[48,260,263],{"className":261,"code":262,"language":35,"meta":56,"style":56},"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",[29,264,265,270,276,282],{"__ignoreMap":56},[227,266,267],{"class":229,"line":230},[227,268,269],{},"60 * * * * /path/to/script.sh     # Ошибка: 60 > 59\n",[227,271,273],{"class":229,"line":272},2,[227,274,275],{},"*/0 * * * * /path/to/script.sh    # Ошибка: шаг 0\n",[227,277,279],{"class":229,"line":278},3,[227,280,281],{},"-5 * * * * /path/to/script.sh     # Ошибка: отрицательное число\n",[227,283,285],{"class":229,"line":284},4,[227,286,287],{},"* * * * *                        # Корректно (каждую минуту)\n",[239,289],{},"Примеры ",[24,292,293],{},"корректных",[48,295,297],{"className":261,"code":296,"language":35,"meta":56,"style":56},"0 * * * * /path/to/script.sh      # Каждый час в 0 минут\n*/5 * * * * /path/to/script.sh    # Каждые 5 минут\n0-30/5 * * * * /path/to/script.sh # Каждые 5 минут с 0 по 30\n",[29,298,299,304,309],{"__ignoreMap":56},[227,300,301],{"class":229,"line":230},[227,302,303],{},"0 * * * * /path/to/script.sh      # Каждый час в 0 минут\n",[227,305,306],{"class":229,"line":272},[227,307,308],{},"*/5 * * * * /path/to/script.sh    # Каждые 5 минут\n",[227,310,311],{"class":229,"line":278},[227,312,313],{},"0-30/5 * * * * /path/to/script.sh # Каждые 5 минут с 0 по 30\n",[98,315,316,319,320],{},[24,317,318],{},"Исправьте поле минут"," на допустимое значение (0-59, диапазон, шаг, список). Сохраните файл и выйдите из редактора.",[321,322,323,341],"ul",{},[98,324,325,326,328,329,332,333,336,337,340],{},"В ",[29,327,244],{},": ",[29,330,331],{},"Ctrl+X",", затем ",[29,334,335],{},"Y"," (сохранить), ",[29,338,339],{},"Enter"," (подтвердить имя).",[98,342,325,343,328,345,332,348,117],{},[29,344,247],{},[29,346,347],{},":wq",[29,349,339],{},[98,351,352,355,356,359],{},[24,353,354],{},"Убедитесь, что crontab загружен",". Команда ",[29,357,358],{},"crontab -e"," автоматически проверяет синтаксис при сохранении и сообщит об ошибке, если она осталась. Если сохранение прошло без предупреждений, синтаксис корректен.",[98,361,362,365,366],{},[24,363,364],{},"Проверьте логи"," через 1-2 минуты, чтобы убедиться, что ошибка исчезла:",[48,367,369],{"className":221,"code":368,"language":223,"meta":56,"style":56},"grep -i \"bad minute\" /var/log/syslog\n",[29,370,371],{"__ignoreMap":56},[227,372,373,376,379,383],{"class":229,"line":230},[227,374,375],{"class":233},"grep",[227,377,378],{"class":236}," -i",[227,380,382],{"class":381},"sZZnC"," \"bad minute\"",[227,384,385],{"class":381}," /var/log/syslog\n",[204,387,389,390,393],{"id":388},"способ-2-валидация-через-crontab-l-и-внешние-инструменты","Способ 2: Валидация через ",[29,391,392],{},"crontab -l"," и внешние инструменты",[20,395,396],{},"Если crontab большой или вы не уверены в синтаксисе, используйте дополнительные методы проверки.",[95,398,399,430,444],{},[98,400,401,218,404,423,425,426,429],{},[24,402,403],{},"Выведите текущий crontab в файл и проверьте вручную",[48,405,407],{"className":221,"code":406,"language":223,"meta":56,"style":56},"crontab -l > mycron.txt\n",[29,408,409],{"__ignoreMap":56},[227,410,411,413,416,420],{"class":229,"line":230},[227,412,35],{"class":233},[227,414,415],{"class":236}," -l",[227,417,419],{"class":418},"szBVR"," >",[227,421,422],{"class":381}," mycron.txt\n",[239,424],{},"Откройте ",[29,427,428],{},"mycron.txt"," в любом редакторе и внимательно проверьте первое поле каждой строки.",[98,431,432,435,436,443],{},[24,433,434],{},"Используйте онлайн-валидатор"," для сложных расписаний. Откройте ",[437,438,442],"a",{"href":439,"rel":440},"https://crontab.guru",[441],"nofollow","crontab.guru"," и введите ваше расписание (первые 5 полей). Сервис покажет, как часто оно сработает, и подсветит ошибки.",[98,445,446,451,452,470,472],{},[24,447,448,449],{},"Проверьте синтаксис с помощью утилиты ",[29,450,35],{}," (некоторые дистрибутивы):",[48,453,455],{"className":221,"code":454,"language":223,"meta":56,"style":56},"crontab -c -l  # Флаг -c может проверять синтаксис (зависит от версии cron)\n",[29,456,457],{"__ignoreMap":56},[227,458,459,461,464,466],{"class":229,"line":230},[227,460,35],{"class":233},[227,462,463],{"class":236}," -c",[227,465,415],{"class":236},[227,467,469],{"class":468},"sJ8bj","  # Флаг -c может проверять синтаксис (зависит от версии cron)\n",[239,471],{},"Если команда недоступна, полагайтесь на логи.",[204,474,476],{"id":475},"способ-3-анализ-системных-логов-для-поиска-конкретной-строки","Способ 3: Анализ системных логов для поиска конкретной строки",[20,478,479],{},"Если вы не знаете, в каком именно crontab (пользовательском или системном) ошибка, ищите в логах.",[95,481,482,601,622],{},[98,483,484,487,488],{},[24,485,486],{},"Просмотрите логи cron",". В зависимости от дистрибутива:",[321,489,490,515,538],{},[98,491,492,495,496],{},[24,493,494],{},"Ubuntu/Debian",":\n",[48,497,499],{"className":221,"code":498,"language":223,"meta":56,"style":56},"sudo grep -i \"bad minute\" /var/log/syslog\n",[29,500,501],{"__ignoreMap":56},[227,502,503,506,509,511,513],{"class":229,"line":230},[227,504,505],{"class":233},"sudo",[227,507,508],{"class":381}," grep",[227,510,378],{"class":236},[227,512,382],{"class":381},[227,514,385],{"class":381},[98,516,517,495,520],{},[24,518,519],{},"CentOS/RHEL/Fedora",[48,521,523],{"className":221,"code":522,"language":223,"meta":56,"style":56},"sudo grep -i \"bad minute\" /var/log/cron\n",[29,524,525],{"__ignoreMap":56},[227,526,527,529,531,533,535],{"class":229,"line":230},[227,528,505],{"class":233},[227,530,508],{"class":381},[227,532,378],{"class":236},[227,534,382],{"class":381},[227,536,537],{"class":381}," /var/log/cron\n",[98,539,540,543,544],{},[24,541,542],{},"Systemd-системы"," (современные):\n",[48,545,547],{"className":221,"code":546,"language":223,"meta":56,"style":56},"sudo journalctl -u cron -b | grep -i \"bad minute\"\n# или для crond\nsudo journalctl -u crond -b | grep -i \"bad minute\"\n",[29,548,549,575,580],{"__ignoreMap":56},[227,550,551,553,556,559,562,565,568,570,572],{"class":229,"line":230},[227,552,505],{"class":233},[227,554,555],{"class":381}," journalctl",[227,557,558],{"class":236}," -u",[227,560,561],{"class":381}," cron",[227,563,564],{"class":236}," -b",[227,566,567],{"class":418}," |",[227,569,508],{"class":233},[227,571,378],{"class":236},[227,573,574],{"class":381}," \"bad minute\"\n",[227,576,577],{"class":229,"line":272},[227,578,579],{"class":468},"# или для crond\n",[227,581,582,584,586,588,591,593,595,597,599],{"class":229,"line":278},[227,583,505],{"class":233},[227,585,555],{"class":381},[227,587,558],{"class":236},[227,589,590],{"class":381}," crond",[227,592,564],{"class":236},[227,594,567],{"class":418},[227,596,508],{"class":233},[227,598,378],{"class":236},[227,600,574],{"class":381},[98,602,603,606,607,613,615,616,619,620,117],{},[24,604,605],{},"В выводе вы увидите временную метку и имя пользователя",", чей crontab вызвал ошибку. Пример:",[48,608,611],{"className":609,"code":610,"language":53},[51],"Feb 17 10:15:01 server CRON[12345]: (user) BAD MINUTE (60)\n",[29,612,610],{"__ignoreMap":56},[239,614],{},"Это означает, что у пользователя ",[29,617,618],{},"user"," в его crontab есть строка, где в поле минут указано ",[29,621,106],{},[98,623,624,627,628,630,631,634],{},[24,625,626],{},"Перейдите к crontab этого пользователя"," (если это вы, то ",[29,629,358],{},"; если другой пользователь, то ",[29,632,633],{},"sudo crontab -u username -e",") и исправьте указанное значение.",[204,636,638,639,642,643],{"id":637},"способ-4-проверка-системного-crontab-etccrontab-и-файлов-в-etccrond","Способ 4: Проверка системного crontab (",[29,640,641],{},"/etc/crontab",") и файлов в ",[29,644,645],{},"/etc/cron.d/",[20,647,648],{},"Ошибка может быть не в пользовательском crontab, а в системном расписании.",[95,650,651,678,720],{},[98,652,653,218,656,671,673,674,677],{},[24,654,655],{},"Проверьте системный crontab",[48,657,659],{"className":221,"code":658,"language":223,"meta":56,"style":56},"sudo cat /etc/crontab\n",[29,660,661],{"__ignoreMap":56},[227,662,663,665,668],{"class":229,"line":230},[227,664,505],{"class":233},[227,666,667],{"class":381}," cat",[227,669,670],{"class":381}," /etc/crontab\n",[239,672],{},"Формат здесь отличается: после минут идут ",[24,675,676],{},"часы, день месяца, месяц, день недели, ПОЛЬЗОВАТЕЛЬ",", а затем команда. Убедитесь, что поле минут корректно.",[98,679,680,218,685,714,716,717,719],{},[24,681,682,683],{},"Проверьте дополнительные файлы в ",[29,684,645],{},[48,686,688],{"className":221,"code":687,"language":223,"meta":56,"style":56},"sudo ls /etc/cron.d/\nsudo cat /etc/cron.d/*  # Просмотрите каждый файл\n",[29,689,690,700],{"__ignoreMap":56},[227,691,692,694,697],{"class":229,"line":230},[227,693,505],{"class":233},[227,695,696],{"class":381}," ls",[227,698,699],{"class":381}," /etc/cron.d/\n",[227,701,702,704,706,709,711],{"class":229,"line":272},[227,703,505],{"class":233},[227,705,667],{"class":381},[227,707,708],{"class":381}," /etc/cron.d/",[227,710,135],{"class":236},[227,712,713],{"class":468},"  # Просмотрите каждый файл\n",[239,715],{},"Эти файлы используют тот же синтаксис, что и ",[29,718,641],{}," (с указанием пользователя). Ищите некорректные значения минут.",[98,721,722,725,726,75,729,117],{},[24,723,724],{},"Исправьте найденные ошибки"," с помощью ",[29,727,728],{},"sudo nano",[29,730,731],{},"sudo vim",[733,734],"in-article-ad",{},[15,736,738],{"id":737},"профилактика","Профилактика",[20,740,741],{},"Чтобы избежать ошибки \"bad minute\" в будущем:",[321,743,744,750,781,791,801,810],{},[98,745,746,749],{},[24,747,748],{},"Всегда проверяйте диапазон 0-59"," для поля минут. Запомните: 60 минут в часе нет.",[98,751,752,495,755],{},[24,753,754],{},"Используйте проверенные шаблоны",[321,756,757,763,769,775],{},[98,758,759,762],{},[29,760,761],{},"*/N"," — каждые N минут (N от 1 до 59).",[98,764,765,768],{},[29,766,767],{},"M-N"," — диапазон от M до N (оба в 0-59).",[98,770,771,774],{},[29,772,773],{},"M,N,O"," — список конкретных минут.",[98,776,777,780],{},[29,778,779],{},"M-N/K"," — диапазон с шагом K.",[98,782,783,786,787,790],{},[24,784,785],{},"Тестируйте сложные расписания"," на ",[437,788,442],{"href":439,"rel":789},[441]," перед добавлением в crontab.",[98,792,793,796,797,800],{},[24,794,795],{},"Регулярно просматривайте логи cron"," (",[29,798,799],{},"grep CRON /var/log/syslog",") на наличие других предупреждений.",[98,802,803,806,807,809],{},[24,804,805],{},"При добавлении новых заданий"," проверяйте синтаксис сразу после сохранения crontab. Текстовый редактор ",[29,808,244],{}," часто подсвечивает синтаксис, но окончательную проверку делает сам cron.",[98,811,812,815],{},[24,813,814],{},"Для критических заданий"," добавляйте простой тестовый скрипт, который пишет в файл, и проверяйте его выполнение через несколько минут после настройки.",[20,817,818],{},"Следуя этим правилам, вы гарантированно избежите синтаксических ошибок в cron и обеспечите надёжную работу планировщика.",[820,821,822],"style",{},"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":56,"searchDepth":272,"depth":272,"links":824},[825,826,827,835],{"id":17,"depth":272,"text":18},{"id":89,"depth":272,"text":90},{"id":201,"depth":272,"text":202,"children":828},[829,830,832,833],{"id":206,"depth":278,"text":207},{"id":388,"depth":278,"text":831},"Способ 2: Валидация через crontab -l и внешние инструменты",{"id":475,"depth":278,"text":476},{"id":637,"depth":278,"text":834},"Способ 4: Проверка системного crontab (/etc/crontab) и файлов в /etc/cron.d/",{"id":737,"depth":272,"text":738},null,"bad minute","2026-02-17 14:32:11","Пошаговая инструкция по исправлению ошибки 'bad minute' в cron. Узнайте, почему возникает проблема с расписанием и как быстро её решить. Проверенные методы для Linux.","easy",false,"5-10 мин","md",[845,848,851,854],{"question":846,"answer":847},"Почему в cron возникает ошибка 'bad minute'?","Ошибка возникает, когда в поле 'минуты' crontab указано значение вне допустимого диапазона (0-59), нечисловое значение или пустая строка. Cron строго проверяет синтаксис.",{"question":849,"answer":850},"Как проверить crontab на наличие ошибок 'bad minute'?","Выполните `crontab -l` для просмотра текущих заданий. Ошибки также будут отображены в системном логе при попытке запуска: `grep CRON /var/log/syslog` или `journalctl -u cron`.",{"question":852,"answer":853},"Можно ли использовать в cron диапазоны и шаги для минут?","Да, например, `0-30/5` (каждые 5 минут от 0 до 30) или `*/15` (каждые 15 минут). Но диапазон должен быть в пределах 0-59, а шаг — целым положительным числом.",{"question":855,"answer":856},"Что делать, если cron не запускается после исправления ошибки?","Убедитесь, что вы сохранили файл crontab (в редакторе `crontab -e`). Перезапустите демон cron: `sudo systemctl restart cron` (или `crond` на CentOS). Проверьте права на выполнение скрипта.",[858,861,864,867],{"name":859,"text":860},"Проверьте синтаксис расписания в crontab","Откройте crontab командой `crontab -e` и найдите строку, вызывающую ошибку. Убедитесь, что поле минут (первое после `* * * * *`) содержит число от 0 до 59, диапазон (например, `0-59`) или корректный шаг (`*/1`).",{"name":862,"text":863},"Исправьте некорректные значения минут","Замените недопустимые значения (например, `60`, `-1`, `abc`) на корректные. Для ежечасного запуска в 0 минут используйте `0 * * * *`. Для каждых 5 минут — `*/5 * * * *`.",{"name":865,"text":866},"Проверьте системные логи cron","Выполните `grep -i 'bad minute' /var/log/syslog` (Ubuntu/Debian) или `grep -i 'bad minute' /var/log/cron` (CentOS/RHEL). Лог покажет точное время и строку с ошибкой.",{"name":868,"text":869},"Перезагрузите службу cron","После исправления сохраните crontab (Ctrl+X, затем Y в nano). Перезапустите демон: `sudo systemctl restart cron` (или `sudo systemctl restart crond`).","PT10M",[872,873,874,875,876,877,878,879],"cron bad minute","ошибка расписания cron","неправильные минуты в cron","как исправить cron ошибку","cron job не работает","cron syntax error","минуты в cron больше 59","cron tab ошибка","ru_RU",{},true,"/errors/linux/cron-bad-minute","linux",[886,887,888],"/errors/linux/cron-job-not-running","/guides/linux/cron-setup","/errors/linux/cron-bad-hour","Ошибки Linux",{"title":5,"description":839},"medium","errors/linux/cron-bad-minute","Статья объясняет, что означает ошибка 'bad minute' в cron, какие значения минут являются корректными, и как исправить неверное расписание. Вы научитесь диагностировать проблему и настраивать cron без ошибок.",[31,884,895,896,897,898],"расписание","cronjob","scheduler","sysadmin","error","vKkwQLeuVtfrvdwnMLpxRY7koyMZG8eas96VTxt8Qqs",{"data":902,"body":903},{},{"type":904,"children":905},"root",[906],{"type":907,"tag":20,"props":908,"children":909},"element",{},[910],{"type":53,"value":847},{"data":912,"body":913},{},{"type":904,"children":914},[915],{"type":907,"tag":20,"props":916,"children":917},{},[918,920,925,927,932,933,939],{"type":53,"value":919},"Выполните ",{"type":907,"tag":29,"props":921,"children":923},{"className":922},[],[924],{"type":53,"value":392},{"type":53,"value":926}," для просмотра текущих заданий. Ошибки также будут отображены в системном логе при попытке запуска: ",{"type":907,"tag":29,"props":928,"children":930},{"className":929},[],[931],{"type":53,"value":799},{"type":53,"value":75},{"type":907,"tag":29,"props":934,"children":936},{"className":935},[],[937],{"type":53,"value":938},"journalctl -u cron",{"type":53,"value":117},{"data":941,"body":942},{},{"type":904,"children":943},[944],{"type":907,"tag":20,"props":945,"children":946},{},[947,949,955,957,963],{"type":53,"value":948},"Да, например, ",{"type":907,"tag":29,"props":950,"children":952},{"className":951},[],[953],{"type":53,"value":954},"0-30/5",{"type":53,"value":956}," (каждые 5 минут от 0 до 30) или ",{"type":907,"tag":29,"props":958,"children":960},{"className":959},[],[961],{"type":53,"value":962},"*/15",{"type":53,"value":964}," (каждые 15 минут). Но диапазон должен быть в пределах 0-59, а шаг — целым положительным числом.",{"data":966,"body":967},{},{"type":904,"children":968},[969],{"type":907,"tag":20,"props":970,"children":971},{},[972,974,979,981,987,989,995],{"type":53,"value":973},"Убедитесь, что вы сохранили файл crontab (в редакторе ",{"type":907,"tag":29,"props":975,"children":977},{"className":976},[],[978],{"type":53,"value":358},{"type":53,"value":980},"). Перезапустите демон cron: ",{"type":907,"tag":29,"props":982,"children":984},{"className":983},[],[985],{"type":53,"value":986},"sudo systemctl restart cron",{"type":53,"value":988}," (или ",{"type":907,"tag":29,"props":990,"children":992},{"className":991},[],[993],{"type":53,"value":994},"crond",{"type":53,"value":996}," на CentOS). Проверьте права на выполнение скрипта.",{"data":998,"body":999},{},{"type":904,"children":1000},[1001],{"type":907,"tag":20,"props":1002,"children":1003},{},[1004,1006,1011,1013,1018,1020,1026,1028,1034],{"type":53,"value":1005},"Откройте crontab командой ",{"type":907,"tag":29,"props":1007,"children":1009},{"className":1008},[],[1010],{"type":53,"value":358},{"type":53,"value":1012}," и найдите строку, вызывающую ошибку. Убедитесь, что поле минут (первое после ",{"type":907,"tag":29,"props":1014,"children":1016},{"className":1015},[],[1017],{"type":53,"value":131},{"type":53,"value":1019},") содержит число от 0 до 59, диапазон (например, ",{"type":907,"tag":29,"props":1021,"children":1023},{"className":1022},[],[1024],{"type":53,"value":1025},"0-59",{"type":53,"value":1027},") или корректный шаг (",{"type":907,"tag":29,"props":1029,"children":1031},{"className":1030},[],[1032],{"type":53,"value":1033},"*/1",{"type":53,"value":1035},").",{"data":1037,"body":1038},{},{"type":904,"children":1039},[1040],{"type":907,"tag":20,"props":1041,"children":1042},{},[1043,1045,1050,1051,1056,1057,1063,1065,1071,1073,1079],{"type":53,"value":1044},"Замените недопустимые значения (например, ",{"type":907,"tag":29,"props":1046,"children":1048},{"className":1047},[],[1049],{"type":53,"value":106},{"type":53,"value":107},{"type":907,"tag":29,"props":1052,"children":1054},{"className":1053},[],[1055],{"type":53,"value":113},{"type":53,"value":107},{"type":907,"tag":29,"props":1058,"children":1060},{"className":1059},[],[1061],{"type":53,"value":1062},"abc",{"type":53,"value":1064},") на корректные. Для ежечасного запуска в 0 минут используйте ",{"type":907,"tag":29,"props":1066,"children":1068},{"className":1067},[],[1069],{"type":53,"value":1070},"0 * * * *",{"type":53,"value":1072},". Для каждых 5 минут — ",{"type":907,"tag":29,"props":1074,"children":1076},{"className":1075},[],[1077],{"type":53,"value":1078},"*/5 * * * *",{"type":53,"value":117},{"data":1081,"body":1082},{},{"type":904,"children":1083},[1084],{"type":907,"tag":20,"props":1085,"children":1086},{},[1087,1088,1094,1096,1102],{"type":53,"value":919},{"type":907,"tag":29,"props":1089,"children":1091},{"className":1090},[],[1092],{"type":53,"value":1093},"grep -i 'bad minute' /var/log/syslog",{"type":53,"value":1095}," (Ubuntu/Debian) или ",{"type":907,"tag":29,"props":1097,"children":1099},{"className":1098},[],[1100],{"type":53,"value":1101},"grep -i 'bad minute' /var/log/cron",{"type":53,"value":1103}," (CentOS/RHEL). Лог покажет точное время и строку с ошибкой.",{"data":1105,"body":1106},{},{"type":904,"children":1107},[1108],{"type":907,"tag":20,"props":1109,"children":1110},{},[1111,1113,1118,1119,1125],{"type":53,"value":1112},"После исправления сохраните crontab (Ctrl+X, затем Y в nano). Перезапустите демон: ",{"type":907,"tag":29,"props":1114,"children":1116},{"className":1115},[],[1117],{"type":53,"value":986},{"type":53,"value":988},{"type":907,"tag":29,"props":1120,"children":1122},{"className":1121},[],[1123],{"type":53,"value":1124},"sudo systemctl restart crond",{"type":53,"value":1035},[1127,1661,2327],{"id":1128,"title":1129,"appliesTo":1130,"author":10,"body":1132,"canonical":836,"code":1142,"createdAt":1603,"description":1604,"difficulty":891,"draft":841,"estimatedTime":842,"extension":843,"faq":1605,"howToSteps":1618,"howToTotalTime":870,"image":836,"keywords":1637,"locale":880,"meta":1646,"navigation":882,"path":886,"platform":884,"related":1647,"section":889,"seo":1651,"severity":891,"stem":1652,"summary":1653,"tags":1654,"twitterCreator":836,"twitterSite":836,"type":899,"updatedAt":1603,"__hash__":1660},"content_ru/errors/linux/cron-job-not-running.md","Исправление неработающих задач cron в Linux (код CRON001)",[1131],"Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, Debian 11, CentOS 8",{"type":12,"value":1133,"toc":1590},[1134,1138,1147,1149,1187,1189,1193,1244,1253,1257,1324,1328,1381,1385,1450,1454,1488,1490,1494,1497,1538,1540,1584,1587],[15,1135,1137],{"id":1136},"что-означает-ошибка-cron001","Что означает ошибка CRON001",[20,1139,22,1140,1143,1144,1146],{},[24,1141,1142],{},"CRON001"," — это неспецифический идентификатор, используемый в FixPedia для обозначения ситуации, когда запланированная задача cron не выполняется. Это может проявляться отсутствием ожидаемого вывода, отсутствием записей в журналах или неподтвержденным статусом задачи в ",[29,1145,392],{},". Симптомы обычно появляются в журналах системы или в почте, если задача настроена на отправку уведомлений.",[15,1148,90],{"id":89},[321,1150,1151,1157,1163,1169,1175,1181],{},[98,1152,1153,1156],{},[24,1154,1155],{},"Служба cron не запущена"," – система не управляет демоном cron.",[98,1158,1159,1162],{},[24,1160,1161],{},"Неправильные права доступа"," – скрипты, на которые ссылается задача, недоступны для чтения пользователем, от имени которого работает cron.",[98,1164,1165,1168],{},[24,1166,1167],{},"Синтаксические ошибки в crontab"," – опечатки в расписании или командах предотвращают запуск задачи.",[98,1170,1171,1174],{},[24,1172,1173],{},"Отсутствие необходимых оболочек или переменных окружения"," – команды, которые зависят от определённых shell-функций, не выполняются.",[98,1176,1177,1180],{},[24,1178,1179],{},"Конфликт с другими сервисами"," – например, системные таймеры systemd могут переопределять тот же cron-задание.",[98,1182,1183,1186],{},[24,1184,1185],{},"Ошибки в скриптах"," – ошибки в скриптах приводят к преждевременному завершению работы, что cron регистрирует как «завершение с ошибкой».",[15,1188,202],{"id":201},[204,1190,1192],{"id":1191},"способ-1-проверка-состояния-службы-cron","Способ 1: Проверка состояния службы cron",[95,1194,1195],{},[98,1196,1197,1198,1214,1215,1229,1230],{},"Проверьте, работает ли служба cron в данный момент:\n",[48,1199,1201],{"className":221,"code":1200,"language":223,"meta":56,"style":56},"systemctl status cron\n",[29,1202,1203],{"__ignoreMap":56},[227,1204,1205,1208,1211],{"class":229,"line":230},[227,1206,1207],{"class":233},"systemctl",[227,1209,1210],{"class":381}," status",[227,1212,1213],{"class":381}," cron\n","\nЕсли служба остановлена, запустите её:\n",[48,1216,1218],{"className":221,"code":1217,"language":223,"meta":56,"style":56},"systemctl start cron\n",[29,1219,1220],{"__ignoreMap":56},[227,1221,1222,1224,1227],{"class":229,"line":230},[227,1223,1207],{"class":233},[227,1225,1226],{"class":381}," start",[227,1228,1213],{"class":381},"\nРазрешите автоматический запуск при загрузке системы:\n",[48,1231,1233],{"className":221,"code":1232,"language":223,"meta":56,"style":56},"systemctl enable cron\n",[29,1234,1235],{"__ignoreMap":56},[227,1236,1237,1239,1242],{"class":229,"line":230},[227,1238,1207],{"class":233},[227,1240,1241],{"class":381}," enable",[227,1243,1213],{"class":381},[186,1245,1246],{},[20,1247,190,1248,1250,1251,117],{},[24,1249,193],{}," Если служба постоянно падает, проверьте системный лог: ",[29,1252,938],{},[204,1254,1256],{"id":1255},"способ-2-проверка-и-исправление-crontab","Способ 2: Проверка и исправление crontab",[95,1258,1259,1274,1307],{},[98,1260,1261,1262],{},"Выведите текущую конфигурацию crontab:\n",[48,1263,1265],{"className":221,"code":1264,"language":223,"meta":56,"style":56},"crontab -l\n",[29,1266,1267],{"__ignoreMap":56},[227,1268,1269,1271],{"class":229,"line":230},[227,1270,35],{"class":233},[227,1272,1273],{"class":236}," -l\n",[98,1275,1276,1277,1279,1280],{},"Проверьте синтаксис команд вручную, запустив каждую из них в терминале (замените ",[29,1278,618],{}," на реального владельца):\n",[48,1281,1283],{"className":221,"code":1282,"language":223,"meta":56,"style":56},"sudo -u user \u003Ccommand>\n",[29,1284,1285],{"__ignoreMap":56},[227,1286,1287,1289,1291,1294,1297,1300,1304],{"class":229,"line":230},[227,1288,505],{"class":233},[227,1290,558],{"class":236},[227,1292,1293],{"class":381}," user",[227,1295,1296],{"class":418}," \u003C",[227,1298,1299],{"class":381},"comman",[227,1301,1303],{"class":1302},"sVt8B","d",[227,1305,1306],{"class":418},">\n",[98,1308,1309,1310,1320,1321,1035],{},"Если задача повреждена, отредактируйте crontab:\n",[48,1311,1312],{"className":221,"code":222,"language":223,"meta":56,"style":56},[29,1313,1314],{"__ignoreMap":56},[227,1315,1316,1318],{"class":229,"line":230},[227,1317,35],{"class":233},[227,1319,237],{"class":236},"\nУбедитесь, что путь к скрипту абсолютный, а команда имеет правильный синтаксис (",[29,1322,1323],{},"* * * * * /path/to/script.sh",[204,1325,1327],{"id":1326},"способ-3-анализ-журналов-cron","Способ 3: Анализ журналов cron",[95,1329,1330,1357,1364],{},[98,1331,1332,1333,1350,1351,75,1354],{},"Откройте журнал событий cron в режиме реального времени:\n",[48,1334,1336],{"className":221,"code":1335,"language":223,"meta":56,"style":56},"journalctl -u cron -f\n",[29,1337,1338],{"__ignoreMap":56},[227,1339,1340,1343,1345,1347],{"class":229,"line":230},[227,1341,1342],{"class":233},"journalctl",[227,1344,558],{"class":236},[227,1346,561],{"class":381},[227,1348,1349],{"class":236}," -f\n","\nИщите строки ",[29,1352,1353],{},"CRON",[29,1355,1356],{},"systemd[1]: Started Cron daemon.",[98,1358,1359,1360,1363],{},"Если вы видите ",[29,1361,1362],{},"CRON_ERROR: errno 2",", это означает, что исполняемый файл не найден.",[98,1365,1366,1367],{},"В старых дистрибутивах проверьте системный лог:\n",[48,1368,1370],{"className":221,"code":1369,"language":223,"meta":56,"style":56},"grep CRON /var/log/syslog\n",[29,1371,1372],{"__ignoreMap":56},[227,1373,1374,1376,1379],{"class":229,"line":230},[227,1375,375],{"class":233},[227,1377,1378],{"class":381}," CRON",[227,1380,385],{"class":381},[204,1382,1384],{"id":1383},"способ-4-проверка-окружения-и-прав-доступа","Способ 4: Проверка окружения и прав доступа",[95,1386,1387,1419,1426],{},[98,1388,1389,1390,1392,1393],{},"Убедитесь, что исполняемый скрипт доступен для чтения пользователем, от имени которого запускается cron (обычно ",[29,1391,904],{}," или dedicated user):\n",[48,1394,1396],{"className":221,"code":1395,"language":223,"meta":56,"style":56},"chown user:group /path/to/script.sh\nchmod 644 /path/to/script.sh\n",[29,1397,1398,1409],{"__ignoreMap":56},[227,1399,1400,1403,1406],{"class":229,"line":230},[227,1401,1402],{"class":233},"chown",[227,1404,1405],{"class":381}," user:group",[227,1407,1408],{"class":381}," /path/to/script.sh\n",[227,1410,1411,1414,1417],{"class":229,"line":272},[227,1412,1413],{"class":233},"chmod",[227,1415,1416],{"class":236}," 644",[227,1418,1408],{"class":381},[98,1420,1421,1422,1425],{},"Добавьте ",[29,1423,1424],{},"SHELL /bin/bash"," в начало crontab, если скрипт использует функции bash.",[98,1427,1428,1429],{},"Убедитесь, что все зависимые бинарные файлы доступны:\n",[48,1430,1432],{"className":221,"code":1431,"language":223,"meta":56,"style":56},"sudo -u user bash -c 'PATH=$PATH:/additional/path && /path/to/script.sh'\n",[29,1433,1434],{"__ignoreMap":56},[227,1435,1436,1438,1440,1442,1445,1447],{"class":229,"line":230},[227,1437,505],{"class":233},[227,1439,558],{"class":236},[227,1441,1293],{"class":381},[227,1443,1444],{"class":381}," bash",[227,1446,463],{"class":236},[227,1448,1449],{"class":381}," 'PATH=$PATH:/additional/path && /path/to/script.sh'\n",[204,1451,1453],{"id":1452},"способ-5-перезапуск-службы-cron","Способ 5: Перезапуск службы cron",[95,1455,1456,1473],{},[98,1457,1458,1459],{},"Перезапустите службу cron, чтобы применить любые изменения конфигурации:\n",[48,1460,1462],{"className":221,"code":1461,"language":223,"meta":56,"style":56},"systemctl restart cron\n",[29,1463,1464],{"__ignoreMap":56},[227,1465,1466,1468,1471],{"class":229,"line":230},[227,1467,1207],{"class":233},[227,1469,1470],{"class":381}," restart",[227,1472,1213],{"class":381},[98,1474,1475,1476],{},"Проверьте статус ещё раз:\n",[48,1477,1478],{"className":221,"code":1200,"language":223,"meta":56,"style":56},[29,1479,1480],{"__ignoreMap":56},[227,1481,1482,1484,1486],{"class":229,"line":230},[227,1483,1207],{"class":233},[227,1485,1210],{"class":381},[227,1487,1213],{"class":381},[733,1489],{},[204,1491,1493],{"id":1492},"способ-6-альтернативный-подход-переход-на-systemd-таймеры","Способ 6: Альтернативный подход – переход на systemd таймеры",[20,1495,1496],{},"Если задачи cron по-прежнему нестабильны, рассмотрите возможность миграции на таймеры systemd, которые интегрируются с менеджером служб:",[95,1498,1499,1506,1513],{},[98,1500,1501,1502,1505],{},"Создайте единичный сервис-файл ",[29,1503,1504],{},"/etc/systemd/system/mytimer.service"," с нужной командой.",[98,1507,1508,1509,1512],{},"Создайте таймер-файл ",[29,1510,1511],{},"/etc/systemd/system/mytimer.timer"," с расписанием.",[98,1514,1515,1516],{},"Включите и запустите таймер:\n",[48,1517,1519],{"className":221,"code":1518,"language":223,"meta":56,"style":56},"systemctl enable mytimer.timer\nsystemctl start mytimer.timer\n",[29,1520,1521,1530],{"__ignoreMap":56},[227,1522,1523,1525,1527],{"class":229,"line":230},[227,1524,1207],{"class":233},[227,1526,1241],{"class":381},[227,1528,1529],{"class":381}," mytimer.timer\n",[227,1531,1532,1534,1536],{"class":229,"line":272},[227,1533,1207],{"class":233},[227,1535,1226],{"class":381},[227,1537,1529],{"class":381},[15,1539,738],{"id":737},[321,1541,1542,1550,1556,1562,1572,1578],{},[98,1543,1544,1547,1548,117],{},[24,1545,1546],{},"Регулярно проверяйте журналы"," – настройте автоматический экспорт логов cron в ",[29,1549,78],{},[98,1551,1552,1555],{},[24,1553,1554],{},"Используйте абсолютные пути"," для скриптов и исполняемых файлов.",[98,1557,1558,1561],{},[24,1559,1560],{},"Проверяйте crontab"," после любых изменений в системе.",[98,1563,1564,1567,1568,1571],{},[24,1565,1566],{},"Настройте уведомления"," – включите ",[29,1569,1570],{},"MAILTO"," в crontab, чтобы получать оповещения о сбоях.",[98,1573,1574,1577],{},[24,1575,1576],{},"Документируйте зависимости"," – ведите список необходимых переменных окружения и оболочек для каждой задачи.",[98,1579,1580,1583],{},[24,1581,1582],{},"Тестируйте задачи вручную"," перед тем, как доверить их cron, чтобы убедиться, что они работают в нужном контексте пользователя.",[20,1585,1586],{},"Следуя этим шагам, вы сможете быстро выявить причину неработающей задачи cron и вернуть её в рабочее состояние на всех поддерживаемых дистрибутивах Linux.",[820,1588,1589],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":56,"searchDepth":272,"depth":272,"links":1591},[1592,1593,1594,1602],{"id":1136,"depth":272,"text":1137},{"id":89,"depth":272,"text":90},{"id":201,"depth":272,"text":202,"children":1595},[1596,1597,1598,1599,1600,1601],{"id":1191,"depth":278,"text":1192},{"id":1255,"depth":278,"text":1256},{"id":1326,"depth":278,"text":1327},{"id":1383,"depth":278,"text":1384},{"id":1452,"depth":278,"text":1453},{"id":1492,"depth":278,"text":1493},{"id":737,"depth":272,"text":738},"2026-06-30 09:46:38","Пошаговое руководство по диагностике и исправлению неработающих заданий cron. Узнайте, как быстро вернуть работу планированных задач в Ubuntu, Debian и CentOS.",[1606,1609,1612,1615],{"question":1607,"answer":1608},"Почему задача cron не выполняется?","Часто причина — неправильные права доступа, синтаксические ошибки в crontab или проблемы с окружением пользователя.",{"question":1610,"answer":1611},"Как проверить, выполняется ли задача cron?","Вы можете проверить логи с помощью `journalctl -u cron` или `grep CRON /var/log/syslog`.",{"question":1613,"answer":1614},"Что делать, если задача cron не запускается после изменения crontab?","Убедитесь, что файл сохранён с правильными правами (`chmod 644`), и перезапустите сервис cron (`systemctl restart cron`).",{"question":1616,"answer":1617},"Как гарантировать выполнение задачи на разных дистрибутивах?","Используйте абсолютные пути к исполняемым файлам, явно укажите оболочку (`SHELL /bin/bash`) и добавьте `/var/log/cron` для вывода.",[1619,1622,1625,1628,1631,1634],{"name":1620,"text":1621},"Проверить статус службы cron","Выполните `systemctl status cron` и убедитесь, что служба запущена и работает без ошибок.",{"name":1623,"text":1624},"Проверить конфигурацию crontab","Откройте crontab пользователя командой `crontab -l` и проверьте синтаксис, пути и команды.",{"name":1626,"text":1627},"Проверить журнал событий cron","Просмотрите журналы: `journalctl -u cron -f` или `grep CRON /var/log/syslog`.",{"name":1629,"text":1630},"Запустить задачу вручную","Выполните команду напрямую из crontab, чтобы исключить проблемы с окружением.",{"name":1632,"text":1633},"Проверить права доступа и владельца","Убедитесь, что скрипты, на которые ссылается cron, доступны для чтения (`chmod 644`) и принадлежат пользователю, от имени которого выполняется cron.",{"name":1635,"text":1636},"Перезапустить службу cron","Если подозреваете проблемы в работе службы, выполните `systemctl restart cron`.",[1638,1639,1640,1641,1642,1643,1644,1645],"cron job not running","CRON001 ошибка","cron не работает ubuntu","задача cron не выполняется","проверка crontab","лог cron не выводит","cron service status","permissions cron script",{},[1648,1649,1650],"/errors/linux/cron-job-not-executing","/errors/linux/cron-job-permissions","/guides/linux/adding-cron-job",{"title":1129,"description":1604},"errors/linux/cron-job-not-running","В статье объясняется, почему задачи cron могут не выполняться, как диагностировать проблему и несколько надёжных способов вернуть их в рабочее состояние.",[31,1655,1656,1657,1658,1659],"Linux","troubleshooting","сервис","задачи","права доступа","EiKkzPrtpXyWWq7vUD9X9GEptCRxXisvgb7J_o5xNM8",{"id":1662,"title":1663,"appliesTo":1664,"author":10,"body":1669,"canonical":836,"code":56,"createdAt":2271,"description":2272,"difficulty":891,"draft":841,"estimatedTime":2273,"extension":843,"faq":2274,"howToSteps":2287,"howToTotalTime":2303,"image":836,"keywords":2304,"locale":880,"meta":2315,"navigation":882,"path":887,"platform":884,"related":2316,"section":2319,"seo":2320,"severity":56,"stem":2321,"summary":2322,"tags":2323,"twitterCreator":836,"twitterSite":836,"type":2325,"updatedAt":2271,"__hash__":2326},"content_ru/guides/linux/cron-setup.md","Настройка планировщика Cron в Linux: пошаговое руководство",[1665,1666,1667,1668],"Ubuntu 20.04","Ubuntu 22.04","Debian 11","CentOS 8",{"type":12,"value":1670,"toc":2258},[1671,1675,1678,1682,1709,1713,1717,1720,1787,1790,1826,1830,1833,1847,1858,1864,1866,1870,1876,1922,1925,1931,1934,1938,1941,1951,1954,1966,1972,1988,1992,1995,2000,2014,2019,2045,2050,2064,2069,2083,2086,2092,2096,2107,2129,2134,2146,2149,2153,2247,2255],[15,1672,1674],{"id":1673},"введение-зачем-это-нужно","Введение / Зачем это нужно",[20,1676,1677],{},"Cron — это стандартный планировщик задач в Linux, который позволяет автоматически выполнять скрипты, команды или другие действия по заданному расписанию. Настройка Cron помогает автоматизировать рутинные операции: резервное копирование, обновление систем, отправку отчетов, очистку логов и многое другое. После выполнения этого руководства вы сможете добавлять, редактировать и отлаживать задачи Cron, чтобы сделать работу с системой более эффективной.",[15,1679,1681],{"id":1680},"требования-подготовка","Требования / Подготовка",[321,1683,1684,1692,1698,1706],{},[98,1685,1686,1687,1689,1690,117],{},"Доступ к системе с правами ",[24,1688,904],{}," или пользователя ",[24,1691,505],{},[98,1693,1694,1695,1697],{},"Установленный пакет ",[29,1696,31],{}," (в большинстве дистрибутивов он уже присутствует).",[98,1699,1700,1701,107,1704,1035],{},"Базовое знание работы с командной строкой и текстовыми редакторами (например, ",[29,1702,1703],{},"vi",[29,1705,244],{},[98,1707,1708],{},"Желательно иметь скрипты или команды, которые вы хотите запланировать.",[15,1710,1712],{"id":1711},"пошаговая-инструкция","Пошаговая инструкция",[204,1714,1716],{"id":1715},"шаг-1-установка-и-запуск-службы-cron","Шаг 1: Установка и запуск службы Cron",[20,1718,1719],{},"На большинстве дистрибутивов Linux cron уже установлен. Если нет, установите его:",[48,1721,1723],{"className":221,"code":1722,"language":223,"meta":56,"style":56},"# Для Debian/Ubuntu\nsudo apt-get update && sudo apt-get install cron\n# Для RHEL/CentOS\nsudo yum install cron\n# Для Fedora\nsudo dnf install cronie\n",[29,1724,1725,1730,1752,1757,1768,1774],{"__ignoreMap":56},[227,1726,1727],{"class":229,"line":230},[227,1728,1729],{"class":468},"# Для Debian/Ubuntu\n",[227,1731,1732,1734,1737,1740,1743,1745,1747,1750],{"class":229,"line":272},[227,1733,505],{"class":233},[227,1735,1736],{"class":381}," apt-get",[227,1738,1739],{"class":381}," update",[227,1741,1742],{"class":1302}," && ",[227,1744,505],{"class":233},[227,1746,1736],{"class":381},[227,1748,1749],{"class":381}," install",[227,1751,1213],{"class":381},[227,1753,1754],{"class":229,"line":278},[227,1755,1756],{"class":468},"# Для RHEL/CentOS\n",[227,1758,1759,1761,1764,1766],{"class":229,"line":284},[227,1760,505],{"class":233},[227,1762,1763],{"class":381}," yum",[227,1765,1749],{"class":381},[227,1767,1213],{"class":381},[227,1769,1771],{"class":229,"line":1770},5,[227,1772,1773],{"class":468},"# Для Fedora\n",[227,1775,1777,1779,1782,1784],{"class":229,"line":1776},6,[227,1778,505],{"class":233},[227,1780,1781],{"class":381}," dnf",[227,1783,1749],{"class":381},[227,1785,1786],{"class":381}," cronie\n",[20,1788,1789],{},"После установки запустите и включите сервис:",[48,1791,1793],{"className":221,"code":1792,"language":223,"meta":56,"style":56},"sudo systemctl start cron\nsudo systemctl enable cron\nsudo systemctl status cron\n",[29,1794,1795,1806,1816],{"__ignoreMap":56},[227,1796,1797,1799,1802,1804],{"class":229,"line":230},[227,1798,505],{"class":233},[227,1800,1801],{"class":381}," systemctl",[227,1803,1226],{"class":381},[227,1805,1213],{"class":381},[227,1807,1808,1810,1812,1814],{"class":229,"line":272},[227,1809,505],{"class":233},[227,1811,1801],{"class":381},[227,1813,1241],{"class":381},[227,1815,1213],{"class":381},[227,1817,1818,1820,1822,1824],{"class":229,"line":278},[227,1819,505],{"class":233},[227,1821,1801],{"class":381},[227,1823,1210],{"class":381},[227,1825,1213],{"class":381},[204,1827,1829],{"id":1828},"шаг-2-редактирование-таблицы-crontab","Шаг 2: Редактирование таблицы crontab",[20,1831,1832],{},"Откройте таблицу для редактирования с помощью редактора командной строки:",[48,1834,1836],{"className":221,"code":1835,"language":223,"meta":56,"style":56},"sudo crontab -e\n",[29,1837,1838],{"__ignoreMap":56},[227,1839,1840,1842,1845],{"class":229,"line":230},[227,1841,505],{"class":233},[227,1843,1844],{"class":381}," crontab",[227,1846,237],{"class":236},[20,1848,1849,1850,1853,1854,1857],{},"Добавьте задачу в формате ",[24,1851,1852],{},"минута час день месяц день_неделе команда",". Например, запуск скрипта ",[29,1855,1856],{},"/home/user/backup.sh"," каждый день в 02:00:",[48,1859,1862],{"className":1860,"code":1861,"language":53},[51],"0 2 * * * /home/user/backup.sh\n",[29,1863,1861],{"__ignoreMap":56},[733,1865],{},[204,1867,1869],{"id":1868},"шаг-3-создание-простой-задачи-с-выводом-лога","Шаг 3: Создание простой задачи с выводом лога",[20,1871,1872,1873,218],{},"Чтобы убедиться, что задачи выполняются, создайте тестовый скрипт, например ",[29,1874,1875],{},"~/test.sh",[48,1877,1879],{"className":221,"code":1878,"language":223,"meta":56,"style":56},"cat > ~/test.sh \u003C\u003C 'EOF'\n#!/bin/bash\necho \"Задача Cron запустилась $(date)\" >> ~/cron.log\nEOF\nchmod +x ~/test.sh\n",[29,1880,1881,1897,1902,1907,1912],{"__ignoreMap":56},[227,1882,1883,1886,1888,1891,1894],{"class":229,"line":230},[227,1884,1885],{"class":233},"cat",[227,1887,419],{"class":418},[227,1889,1890],{"class":381}," ~/test.sh",[227,1892,1893],{"class":418}," \u003C\u003C",[227,1895,1896],{"class":381}," 'EOF'\n",[227,1898,1899],{"class":229,"line":272},[227,1900,1901],{"class":381},"#!/bin/bash\n",[227,1903,1904],{"class":229,"line":278},[227,1905,1906],{"class":381},"echo \"Задача Cron запустилась $(date)\" >> ~/cron.log\n",[227,1908,1909],{"class":229,"line":284},[227,1910,1911],{"class":381},"EOF\n",[227,1913,1914,1916,1919],{"class":229,"line":1770},[227,1915,1413],{"class":233},[227,1917,1918],{"class":381}," +x",[227,1920,1921],{"class":381}," ~/test.sh\n",[20,1923,1924],{},"Добавьте вызов скрипта в таблицу crontab:",[48,1926,1929],{"className":1927,"code":1928,"language":53},[51],"* * * * * ~/test.sh\n",[29,1930,1928],{"__ignoreMap":56},[20,1932,1933],{},"Сохраните изменения.",[204,1935,1937],{"id":1936},"шаг-4-проверка-списка-задач","Шаг 4: Проверка списка задач",[20,1939,1940],{},"Проверьте, что задачи добавлены:",[48,1942,1943],{"className":221,"code":1264,"language":223,"meta":56,"style":56},[29,1944,1945],{"__ignoreMap":56},[227,1946,1947,1949],{"class":229,"line":230},[227,1948,35],{"class":233},[227,1950,1273],{"class":236},[20,1952,1953],{},"Для просмотра всех задач системы (требуются права root):",[48,1955,1956],{"className":221,"code":658,"language":223,"meta":56,"style":56},[29,1957,1958],{"__ignoreMap":56},[227,1959,1960,1962,1964],{"class":229,"line":230},[227,1961,505],{"class":233},[227,1963,667],{"class":381},[227,1965,670],{"class":381},[20,1967,1968,1969,218],{},"Или список из ",[29,1970,1971],{},"/var/spool/cron/",[48,1973,1975],{"className":221,"code":1974,"language":223,"meta":56,"style":56},"sudo ls -l /var/spool/cron\n",[29,1976,1977],{"__ignoreMap":56},[227,1978,1979,1981,1983,1985],{"class":229,"line":230},[227,1980,505],{"class":233},[227,1982,696],{"class":381},[227,1984,415],{"class":236},[227,1986,1987],{"class":381}," /var/spool/cron\n",[204,1989,1991],{"id":1990},"шаг-5-устранение-распространённых-проблем","Шаг 5: Устранение распространённых проблем",[20,1993,1994],{},"Если задачи не работают, выполните следующие проверки:",[321,1996,1997],{},[98,1998,1999],{},"Сервис cron работает:",[48,2001,2003],{"className":221,"code":2002,"language":223,"meta":56,"style":56},"systemctl is-active cron\n",[29,2004,2005],{"__ignoreMap":56},[227,2006,2007,2009,2012],{"class":229,"line":230},[227,2008,1207],{"class":233},[227,2010,2011],{"class":381}," is-active",[227,2013,1213],{"class":381},[321,2015,2016],{},[98,2017,2018],{},"Проверьте логи:",[48,2020,2022],{"className":221,"code":2021,"language":223,"meta":56,"style":56},"tail -n 20 /var/log/syslog | grep CRON\n",[29,2023,2024],{"__ignoreMap":56},[227,2025,2026,2029,2032,2035,2038,2040,2042],{"class":229,"line":230},[227,2027,2028],{"class":233},"tail",[227,2030,2031],{"class":236}," -n",[227,2033,2034],{"class":236}," 20",[227,2036,2037],{"class":381}," /var/log/syslog",[227,2039,567],{"class":418},[227,2041,508],{"class":233},[227,2043,2044],{"class":381}," CRON\n",[321,2046,2047],{},[98,2048,2049],{},"Убедитесь, что скрипты доступны для чтения:",[48,2051,2053],{"className":221,"code":2052,"language":223,"meta":56,"style":56},"ls -l ~/test.sh\n",[29,2054,2055],{"__ignoreMap":56},[227,2056,2057,2060,2062],{"class":229,"line":230},[227,2058,2059],{"class":233},"ls",[227,2061,415],{"class":236},[227,2063,1921],{"class":381},[321,2065,2066],{},[98,2067,2068],{},"Проверьте права на директорию spool:",[48,2070,2072],{"className":221,"code":2071,"language":223,"meta":56,"style":56},"ls -ld /var/spool/cron\n",[29,2073,2074],{"__ignoreMap":56},[227,2075,2076,2078,2081],{"class":229,"line":230},[227,2077,2059],{"class":233},[227,2079,2080],{"class":236}," -ld",[227,2082,1987],{"class":381},[20,2084,2085],{},"Если задача запускается, но не выводит результат, добавьте явное перенаправление вывода в таблицу crontab:",[48,2087,2090],{"className":2088,"code":2089,"language":53},[51],"* * * * * ~/test.sh >> ~/cron.log 2>&1\n",[29,2091,2089],{"__ignoreMap":56},[15,2093,2095],{"id":2094},"проверка-результата","Проверка результата",[95,2097,2098,2104],{},[98,2099,2100,2101,117],{},"Подождите одну минуту — новая строка должна появиться в ",[29,2102,2103],{},"~/cron.log",[98,2105,2106],{},"Проверьте журнал cron на наличие записей:",[48,2108,2110],{"className":221,"code":2109,"language":223,"meta":56,"style":56},"grep \"CRON\" /var/log/syslog | tail -5\n",[29,2111,2112],{"__ignoreMap":56},[227,2113,2114,2116,2119,2121,2123,2126],{"class":229,"line":230},[227,2115,375],{"class":233},[227,2117,2118],{"class":381}," \"CRON\"",[227,2120,2037],{"class":381},[227,2122,567],{"class":418},[227,2124,2125],{"class":233}," tail",[227,2127,2128],{"class":236}," -5\n",[95,2130,2131],{"start":278},[98,2132,2133],{},"Убедитесь, что служба cron работает:",[48,2135,2136],{"className":221,"code":1200,"language":223,"meta":56,"style":56},[29,2137,2138],{"__ignoreMap":56},[227,2139,2140,2142,2144],{"class":229,"line":230},[227,2141,1207],{"class":233},[227,2143,1210],{"class":381},[227,2145,1213],{"class":381},[20,2147,2148],{},"Если всё отображается корректно, задачи настроены правильно.",[15,2150,2152],{"id":2151},"возможные-проблемы","Возможные проблемы",[2154,2155,2156,2172],"table",{},[2157,2158,2159],"thead",{},[2160,2161,2162,2166,2169],"tr",{},[2163,2164,2165],"th",{},"Симптом",[2163,2167,2168],{},"Причина",[2163,2170,2171],{},"Решение",[2173,2174,2175,2189,2206,2221,2232],"tbody",{},[2160,2176,2177,2181,2184],{},[2178,2179,2180],"td",{},"Задача не запускается",[2178,2182,2183],{},"Сервис cron остановлен",[2178,2185,2186],{},[29,2187,2188],{},"sudo systemctl start cron",[2160,2190,2191,2194,2197],{},[2178,2192,2193],{},"Нет вывода в логе",[2178,2195,2196],{},"Отсутствие прав на скрипт или директорию",[2178,2198,2199,2202,2203],{},[29,2200,2201],{},"chmod +x ~/script.sh"," и ",[29,2204,2205],{},"chmod 755 ~/",[2160,2207,2208,2211,2214],{},[2178,2209,2210],{},"Ошибка «Permission denied»",[2178,2212,2213],{},"Запуск от неправильного пользователя",[2178,2215,2216,2217,2220],{},"Используйте ",[29,2218,2219],{},"sudo -u username"," в таблице crontab",[2160,2222,2223,2226,2229],{},[2178,2224,2225],{},"Задача выполняется в неверное время",[2178,2227,2228],{},"Ошибки в формате таблицы crontab",[2178,2230,2231],{},"Проверьте значения минут, часов, дня недели",[2160,2233,2234,2237,2240],{},[2178,2235,2236],{},"Лог переполняется",[2178,2238,2239],{},"Нет ротации логов",[2178,2241,2242,2243,2246],{},"Добавьте ротацию логов через ",[29,2244,2245],{},"logrotate"," или перенаправьте вывод в файл с ротацией",[20,2248,2249,2250,107,2252,2254],{},"Если проблема не решена, проверьте системные логи (",[29,2251,74],{},[29,2253,78],{},") на наличие более подробных сообщений об ошибках.",[820,2256,2257],{},"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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .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}",{"title":56,"searchDepth":272,"depth":272,"links":2259},[2260,2261,2262,2269,2270],{"id":1673,"depth":272,"text":1674},{"id":1680,"depth":272,"text":1681},{"id":1711,"depth":272,"text":1712,"children":2263},[2264,2265,2266,2267,2268],{"id":1715,"depth":278,"text":1716},{"id":1828,"depth":278,"text":1829},{"id":1868,"depth":278,"text":1869},{"id":1936,"depth":278,"text":1937},{"id":1990,"depth":278,"text":1991},{"id":2094,"depth":272,"text":2095},{"id":2151,"depth":272,"text":2152},"2026-08-02 16:13:57","Научитесь настраивать задачи Cron в Linux за 5 минут. Пошаговая инструкция с примерами, редактированием таблицы и устранением распространённых ошибок.","10-15 мин",[2275,2278,2281,2284],{"question":2276,"answer":2277},"Зачем нужен Cron в Linux?","Cron — это демоны планировщика задач, которые автоматически запускают скрипты или команды по заданному расписанию, что позволяет автоматизировать рутинные операции.",{"question":2279,"answer":2280},"Как открыть таблицу crontab для редактирования?","Запустите `crontab -e`, выберите редактор (по умолчанию vi), добавьте строку в формате «минута час день месяц день_недели команда».",{"question":2282,"answer":2283},"Что делать, если задачи Cron не выполняются?","Проверьте логи `/var/log/syslog` или `/var/log/cron`, убедитесь, что сервис cron работает (`systemctl status cron`), и права доступа к скриптам.",{"question":2285,"answer":2286},"Как планировать задачу на определённый день недели?","Добавьте день недели (0-7) в последнем поле таблицы crontab, где 0 и 7 — воскресенье.",[2288,2291,2294,2297,2300],{"name":2289,"text":2290},"Установка и запуск службы Cron","На большинстве дистрибутивов Linux cron уже установлен. Если нет, установите его:\n\n```bash\n# Для Debian/Ubuntu\nsudo apt-get update && sudo apt-get install cron\n# Для RHEL/CentOS\nsudo yum install cron\n# Для Fedora\nsudo dnf install cronie\n```\n\nПосле установки запустите и включите сервис:\n\n```bash\nsudo systemctl start cron\nsudo systemctl enable cron\nsudo systemctl status cron\n```",{"name":2292,"text":2293},"Редактирование таблицы crontab","Откройте таблицу для редактирования с помощью редактора командной строки:\n\n```bash\nsudo crontab -e\n```\n\nДобавьте задачу в формате «минута час день месяц день_недели команда». Например, запуск скрипта `/home/user/backup.sh` каждый день в 02:00:\n\n```\n0 2 * * * /home/user/backup.sh\n```",{"name":2295,"text":2296},"Создание простой задачи с выводом лога","Чтобы убедиться, что задачи выполняются, создайте тестовый скрипт, например `~/test.sh`:\n\n```bash\ncat > ~/test.sh \u003C\u003C 'EOF'\n#!/bin/bash\necho \"Задача Cron запустилась $(date)\" >> ~/cron.log\nEOF\nchmod +x ~/test.sh\n```\n\nДобавьте вызов скрипта в таблицу crontab:\n\n```\n* * * * * ~/test.sh\n```\n\nСохраните изменения.",{"name":2298,"text":2299},"Проверка списка задач","Проверьте, что задачи добавлены:\n\n```bash\ncrontab -l\n```\n\nДля просмотра всех задач системы (требуются права root):\n\n```bash\nsudo cat /etc/crontab\n```\n\nИли список из `/var/spool/cron/`:\n\n```bash\nsudo ls -l /var/spool/cron\n```",{"name":2301,"text":2302},"Устранение распространённых проблем","Если задачи не работают, выполните следующие проверки:\n\n- Сервис cron работает:\n\n```bash\nsystemctl is-active cron\n```\n\n- Проверьте логи:\n\n```bash\ntail -n 20 /var/log/syslog | grep CRON\n```\n\n- Убедитесь, что скрипты доступны для чтения:\n\n```bash\nls -l ~/test.sh\n```\n\n- Проверьте права на директорию spool:\n\n```bash\nls -ld /var/spool/cron\n```\n\nЕсли задача запускается, но не выводит результат, добавьте явное перенаправление вывода в таблицу crontab:\n\n```\n* * * * * ~/test.sh >> ~/cron.log 2>&1\n```","PT15M",[2305,2306,2307,2308,2309,2310,2311,2312,2313,2314],"cron настройка","запуск задач cron","таблица crontab","cron daemon","планировщик задач Linux","запись в crontab","cron пример","автоматизация задач Linux","cron service","кроны в Ubuntu",{},[2317,2318],"/guides/linux/crontab-edit","/guides/linux/systemd-timers","Гайды Linux",{"title":1663,"description":2272},"guides/linux/cron-setup","В этом руководстве вы научитесь настраивать задачи Cron в Linux, планировать скрипты и работать с переменными окружения. После выполнения инструкции вы сможете автоматизировать повторяющиеся задачи.",[31,1655,223,897,2324],"automation","guide","R15i5LS2Wa1B0vg0AnUBvMLxSzuSPCZl7957x-sLACg",{"id":2328,"title":2329,"appliesTo":2330,"author":10,"body":2333,"canonical":836,"code":2343,"createdAt":2838,"description":2839,"difficulty":840,"draft":841,"estimatedTime":842,"extension":843,"faq":2840,"howToSteps":2853,"howToTotalTime":2867,"image":836,"keywords":2868,"locale":880,"meta":2879,"navigation":882,"path":888,"platform":884,"related":2880,"section":889,"seo":2882,"severity":2883,"stem":2884,"summary":2885,"tags":2886,"twitterCreator":836,"twitterSite":836,"type":899,"updatedAt":2838,"__hash__":2887},"content_ru/errors/linux/cron-bad-hour.md","Исправление ошибки cron: неверный час в расписании",[2331,2332,1667,1668],"Ubuntu 20.04 LTS","Ubuntu 22.04 LTS",{"type":12,"value":2334,"toc":2825},[2335,2339,2356,2362,2364,2402,2404,2410,2450,2455,2463,2466,2500,2507,2511,2538,2542,2545,2605,2638,2641,2663,2665,2667,2822],[15,2336,2338],{"id":2337},"что-означает-ошибка-bad-hour","Что означает ошибка bad hour",[20,2340,22,2341,2344,2345,2348,2349,75,2352,2355],{},[24,2342,2343],{},"bad hour"," появляется в журнале событий cron, когда значение часа в записи crontab находится вне допустимого диапазона ",[24,2346,2347],{},"0–23",". Например, значение ",[29,2350,2351],{},"25",[29,2353,2354],{},"—1"," вызовет у cron сообщение «bad hour», и запланированная задача не будет выполнена.",[48,2357,2360],{"className":2358,"code":2359,"language":53},[51],"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",[29,2361,2359],{"__ignoreMap":56},[15,2363,90],{"id":89},[321,2365,2366,2377,2390,2396],{},[98,2367,2368,2371,2372,75,2374,1035],{},[24,2369,2370],{},"Часовое значение вне диапазона"," – значение меньше 0 или больше 23 (например, ",[29,2373,2351],{},[29,2375,2376],{},"-2",[98,2378,2379,2382,2383,107,2386,2389],{},[24,2380,2381],{},"Использование нестандартного формата"," – попытка задать час с помощью буквенного обозначения (",[29,2384,2385],{},"Jan",[29,2387,2388],{},"Feb",") или пробелов.",[98,2391,2392,2395],{},[24,2393,2394],{},"Повреждение файла crontab"," – случайное добавление символов, лишних запятых или скобок вокруг числового значения часа.",[98,2397,2398,2401],{},[24,2399,2400],{},"Неправильное копирование данных"," – при ручном редактировании файла с помощью текстового редактора копируется нечисловая часть (например, «час: 99»).",[15,2403,202],{"id":201},[204,2405,2407,2408],{"id":2406},"способ-1-редактирование-crontab-через-crontab-e","Способ 1: Редактирование crontab через ",[29,2409,358],{},[95,2411,2412,2420,2427,2433,2441],{},[98,2413,2414,2417,2418,117],{},[24,2415,2416],{},"Просмотрите текущий график"," – ",[29,2419,392],{},[98,2421,2422,2417,2425,117],{},[24,2423,2424],{},"Откройте файл для редактирования",[29,2426,358],{},[98,2428,2429,2432],{},[24,2430,2431],{},"Найдите строку с неверным часом"," (обычно она отмечена в журнале).",[98,2434,2435,2438,2439,117],{},[24,2436,2437],{},"Исправьте значение часа"," – убедитесь, что оно находится в диапазоне ",[29,2440,2347],{},[98,2442,2443,2446,2447,2449],{},[24,2444,2445],{},"Сохраните и выйдите"," (Ctrl+O, Enter в nano; ",[29,2448,347],{}," в vim).",[186,2451,2452],{},[20,2453,2454],{},"⚠️ Важно: Значения часов в cron отсчитываются от 0 (полночь) до 23 (последний час дня).",[204,2456,2458,2459,2462],{"id":2457},"способ-2-использование-sed-для-замены-часа","Способ 2: Использование ",[29,2460,2461],{},"sed"," для замены часа",[20,2464,2465],{},"Если вам нужно быстро исправить несколько записей, выполните следующую команду:",[48,2467,2469],{"className":221,"code":2468,"language":223,"meta":56,"style":56},"# Замените любое значение часа, не соответствующее шаблону 0-23, на допустимое значение (например, 08)\ncrontab -l | sed -E 's/([0-9]{1,2})\\s+([0-9]{1,2})/\\1 \\2/' | crontab -\n",[29,2470,2471,2476],{"__ignoreMap":56},[227,2472,2473],{"class":229,"line":230},[227,2474,2475],{"class":468},"# Замените любое значение часа, не соответствующее шаблону 0-23, на допустимое значение (например, 08)\n",[227,2477,2478,2480,2482,2484,2487,2490,2493,2495,2497],{"class":229,"line":272},[227,2479,35],{"class":233},[227,2481,415],{"class":236},[227,2483,567],{"class":418},[227,2485,2486],{"class":233}," sed",[227,2488,2489],{"class":236}," -E",[227,2491,2492],{"class":381}," 's/([0-9]{1,2})\\s+([0-9]{1,2})/\\1 \\2/'",[227,2494,567],{"class":418},[227,2496,1844],{"class":233},[227,2498,2499],{"class":381}," -\n",[20,2501,2502,2504,2505,117],{},[29,2503,2461],{}," удаляет лишние символы и приводит формат к стандартному виду. После выполнения команды проверьте результат: ",[29,2506,392],{},[204,2508,2510],{"id":2509},"способ-3-пересоздание-crontab","Способ 3: Пересоздание crontab",[95,2512,2513,2521,2530],{},[98,2514,2515,2417,2518,117],{},[24,2516,2517],{},"Сделайте резервную копию",[29,2519,2520],{},"crontab -l > ~/cron_backup.txt",[98,2522,2523,2417,2526,2529],{},[24,2524,2525],{},"Удалите текущий график",[29,2527,2528],{},"crontab -r"," (подтвердите удаление).",[98,2531,2532,2417,2535,2537],{},[24,2533,2534],{},"Добавьте правильные задания",[29,2536,358],{}," и введите нужные строки.",[204,2539,2541],{"id":2540},"способ-4-переход-на-systemd-timers-для-продвинутых-пользователей","Способ 4: Переход на systemd timers (для продвинутых пользователей)",[20,2543,2544],{},"Для новых систем, использующих systemd, рекомендуется заменить cron-задания на таймеры:",[48,2546,2550],{"className":2547,"code":2548,"language":2549,"meta":56,"style":56},"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",[29,2551,2552,2557,2562,2567,2572,2577,2582,2588,2593,2599],{"__ignoreMap":56},[227,2553,2554],{"class":229,"line":230},[227,2555,2556],{},"# /etc/systemd/system/myjob.timer\n",[227,2558,2559],{"class":229,"line":272},[227,2560,2561],{},"[Unit]\n",[227,2563,2564],{"class":229,"line":278},[227,2565,2566],{},"Description=Запуск моей задачи каждый день в 09:00\n",[227,2568,2569],{"class":229,"line":284},[227,2570,2571],{"emptyLinePlaceholder":882},"\n",[227,2573,2574],{"class":229,"line":1770},[227,2575,2576],{},"[Timer]\n",[227,2578,2579],{"class":229,"line":1776},[227,2580,2581],{},"OnCalendar=*-*-* 09:00:00\n",[227,2583,2585],{"class":229,"line":2584},7,[227,2586,2587],{},"Persistent=true\n",[227,2589,2591],{"class":229,"line":2590},8,[227,2592,2571],{"emptyLinePlaceholder":882},[227,2594,2596],{"class":229,"line":2595},9,[227,2597,2598],{},"[Install]\n",[227,2600,2602],{"class":229,"line":2601},10,[227,2603,2604],{},"WantedBy=timers.target\n",[48,2606,2608],{"className":2547,"code":2607,"language":2549,"meta":56,"style":56},"# /etc/systemd/system/myjob.service\n[Unit]\nDescription=Выполнение моей задачи\n\n[Service]\nExecStart=/path/to/your/script.sh\n",[29,2609,2610,2615,2619,2624,2628,2633],{"__ignoreMap":56},[227,2611,2612],{"class":229,"line":230},[227,2613,2614],{},"# /etc/systemd/system/myjob.service\n",[227,2616,2617],{"class":229,"line":272},[227,2618,2561],{},[227,2620,2621],{"class":229,"line":278},[227,2622,2623],{},"Description=Выполнение моей задачи\n",[227,2625,2626],{"class":229,"line":284},[227,2627,2571],{"emptyLinePlaceholder":882},[227,2629,2630],{"class":229,"line":1770},[227,2631,2632],{},"[Service]\n",[227,2634,2635],{"class":229,"line":1776},[227,2636,2637],{},"ExecStart=/path/to/your/script.sh\n",[20,2639,2640],{},"Включите и запустите таймер:",[48,2642,2644],{"className":221,"code":2643,"language":223,"meta":56,"style":56},"systemctl enable myjob.timer\nsystemctl start myjob.timer\n",[29,2645,2646,2655],{"__ignoreMap":56},[227,2647,2648,2650,2652],{"class":229,"line":230},[227,2649,1207],{"class":233},[227,2651,1241],{"class":381},[227,2653,2654],{"class":381}," myjob.timer\n",[227,2656,2657,2659,2661],{"class":229,"line":272},[227,2658,1207],{"class":233},[227,2660,1226],{"class":381},[227,2662,2654],{"class":381},[733,2664],{},[15,2666,738],{"id":737},[321,2668,2669,2792,2802,2812],{},[98,2670,2671,2674,2675],{},[24,2672,2673],{},"Проверяйте диапазоны перед сохранением"," – многие редакторы crontab имеют встроенную проверку; вы можете также использовать скрипт:",[48,2676,2678],{"className":221,"code":2677,"language":223,"meta":56,"style":56},"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",[29,2679,2680,2703,2737,2769,2782,2787],{"__ignoreMap":56},[227,2681,2682,2684,2686,2688,2691,2694,2697,2700],{"class":229,"line":230},[227,2683,35],{"class":233},[227,2685,415],{"class":236},[227,2687,567],{"class":418},[227,2689,2690],{"class":418}," while",[227,2692,2693],{"class":236}," read",[227,2695,2696],{"class":381}," line",[227,2698,2699],{"class":1302},"; ",[227,2701,2702],{"class":418},"do\n",[227,2704,2705,2708,2711,2714,2717,2720,2723,2726,2728,2731,2734],{"class":229,"line":272},[227,2706,2707],{"class":1302},"  hour",[227,2709,2710],{"class":418},"=",[227,2712,2713],{"class":1302},"$(",[227,2715,2716],{"class":236},"echo",[227,2718,2719],{"class":381}," \"",[227,2721,2722],{"class":1302},"$line",[227,2724,2725],{"class":381},"\"",[227,2727,567],{"class":418},[227,2729,2730],{"class":233}," awk",[227,2732,2733],{"class":381}," '{print $2}'",[227,2735,2736],{"class":1302},")\n",[227,2738,2739,2742,2745,2748,2751,2754,2757,2760,2763,2766],{"class":229,"line":278},[227,2740,2741],{"class":418},"  if",[227,2743,2744],{"class":1302}," [[ $hour ",[227,2746,2747],{"class":418},"-lt",[227,2749,2750],{"class":236}," 0",[227,2752,2753],{"class":418}," ||",[227,2755,2756],{"class":1302}," $hour ",[227,2758,2759],{"class":418},"-gt",[227,2761,2762],{"class":236}," 23",[227,2764,2765],{"class":1302}," ]]; ",[227,2767,2768],{"class":418},"then\n",[227,2770,2771,2774,2777,2779],{"class":229,"line":284},[227,2772,2773],{"class":236},"    echo",[227,2775,2776],{"class":381}," \"Неверный час в строке: ",[227,2778,2722],{"class":1302},[227,2780,2781],{"class":381},"\"\n",[227,2783,2784],{"class":229,"line":1770},[227,2785,2786],{"class":418},"  fi\n",[227,2788,2789],{"class":229,"line":1776},[227,2790,2791],{"class":418},"done\n",[98,2793,2794,2797,2798,2801],{},[24,2795,2796],{},"Ведите журнал изменений"," – храните копии crontab в ",[29,2799,2800],{},"/etc/cron.d/backup/",", чтобы быстро восстановиться при ошибке.",[98,2803,2804,2807,2808,2811],{},[24,2805,2806],{},"Используйте инструменты автодополения"," – такие как ",[29,2809,2810],{},"crontab-gtk"," (в графическом интерфейсе) или плагины редактора, которые подсвечивают недопустимые значения.",[98,2813,2814,2417,2817,75,2819,2821],{},[24,2815,2816],{},"Регулярно проверяйте логи",[29,2818,938],{},[29,2820,74],{}," помогут обнаружить ошибку сразу после её возникновения.",[820,2823,2824],{},"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":56,"searchDepth":272,"depth":272,"links":2826},[2827,2828,2829,2837],{"id":2337,"depth":272,"text":2338},{"id":89,"depth":272,"text":90},{"id":201,"depth":272,"text":202,"children":2830},[2831,2833,2835,2836],{"id":2406,"depth":278,"text":2832},"Способ 1: Редактирование crontab через crontab -e",{"id":2457,"depth":278,"text":2834},"Способ 2: Использование sed для замены часа",{"id":2509,"depth":278,"text":2510},{"id":2540,"depth":278,"text":2541},{"id":737,"depth":272,"text":738},"2026-07-18 11:37:49","Исправьте ошибку cron «bad hour» — узнайте, почему часы указаны неверно, и как быстро их исправить с помощью редактора crontab.",[2841,2844,2847,2850],{"question":2842,"answer":2843},"Почему cron выводит сообщение «bad hour»?","Это происходит, когда значение часа в записи crontab находится вне допустимого диапазона 0–23. Cron не может распознать такое значение и завершает работу с ошибкой.",{"question":2845,"answer":2846},"Можно ли исправить расписание, не используя редактор командной строки?","Да. Вы можете использовать `sed` для замены неверного часа или полностью пересоздать файл crontab, а затем добавить правильные записи.",{"question":2848,"answer":2849},"Что делать, если после исправления ошибка не исчезает?","Убедитесь, что процесс cron запущен (`systemctl status cron`), проверьте синтаксис всей строки с помощью `crontab -l` и перезапустите сервис при необходимости.",{"question":2851,"answer":2852},"Как предотвратить появление этой ошибки в будущем?","Всегда проверяйте диапазоны значений перед сохранением, используйте инструменты автодополнения crontab или ведите журнал изменений в отдельном файле.",[2854,2857,2860,2862,2864],{"name":2855,"text":2856},"Проверьте текущий график задач","Выполните `crontab -l`, чтобы увидеть все запланированные задания и найти строку с неверным значением часа.",{"name":2858,"text":2859},"Определите проблемную запись","Недопустимое значение часа обычно находится в диапазоне 0–23. Обратите внимание на точную строку, которая вызывает ошибку.",{"name":217,"text":2861},"Запустите `crontab -e`. Система откроет файл в стандартном редакторе (например, nano или vim).",{"name":2437,"text":2863},"Измените неверный час на правильное значение (0–23) или удалите всю строку, если задание больше не требуется.",{"name":2865,"text":2866},"Сохраните и проверьте","Сохраните изменения, выйдите из редактора и запустите `crontab -l`, чтобы убедиться, что расписание теперь корректно.","PT5M",[2869,2870,2871,2872,2873,2874,2875,2876,2877,2878],"ошибка cron bad hour","неверный час в crontab","cron не запускает задачу","исправить расписание cron","проверить crontab","значение часа cron 0-23","код ошибки cron bad hour","починить cron задачу","редактировать crontab","cron не работает",{},[883,2881],"/guides/linux/crontab-setup",{"title":2329,"description":2839},"low","errors/linux/cron-bad-hour","Статья объясняет, что означает ошибка cron 'bad hour', почему она возникает и как исправить расписание crontab, чтобы задачи запускались в нужное время.",[31,1655,1656,223],"jbn6Fuv88qvzw836kN9eXElzhXcLtnAkO-4y239-JsU"]