[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/journalctl-commands-cheatsheet":3,"mdc-m0ymq-key":1128,"mdc-9ipiq6-key":1162,"mdc--220lle-key":1186,"mdc--jo149o-key":1211,"mdc-g1q8t1-key":1226,"mdc--wv167a-key":1257,"mdc--7gmfjh-key":1286,"mdc-vqgw2t-key":1310,"mdc--1qsiff-key":1334,"mdc-31zete-key":1358,"related-/guides/linux/systemd-basics,/guides/linux/log-rotation-configuration,/errors/linux/systemd-failed-to-start":1382},{"id":4,"title":5,"appliesTo":6,"author":8,"body":9,"canonical":1056,"code":1056,"createdAt":1057,"description":1058,"difficulty":1059,"draft":1060,"estimatedTime":1061,"extension":1062,"faq":1063,"howToSteps":1076,"howToTotalTime":1095,"image":1056,"keywords":1096,"locale":1107,"meta":1108,"navigation":1109,"path":1110,"platform":1111,"related":1112,"section":1116,"seo":1117,"severity":1056,"stem":1118,"summary":1119,"tags":1120,"twitterCreator":1056,"twitterSite":1056,"type":1126,"updatedAt":1057,"__hash__":1127},"content_ru/guides/linux/journalctl-commands-cheatsheet.md","Журнал systemd: шпаргалка по командам journalctl",[7],"systemd 235+ (Ubuntu 20.04/22.04, Debian 10/11, CentOS 8/Rocky 8, Fedora 35+)","FixPedia Team",{"type":10,"value":11,"toc":1032},"minimark",[12,17,29,33,36,70,74,81,98,113,126,131,147,161,165,176,203,206,222,225,245,249,260,275,278,297,303,307,344,347,362,371,385,391,395,404,407,424,430,449,452,477,480,484,494,513,527,539,546,550,566,596,599,620,626,647,651,654,666,673,727,737,741,744,756,759,769,787,791,794,895,899,902,917,920,936,940,945,954,958,974,978,987,991,1013,1017,1028],[13,14,16],"h2",{"id":15},"введение-зачем-это-нужно","Введение / Зачем это нужно",[18,19,20,24,25,28],"p",{},[21,22,23],"code",{},"journalctl"," — это утилита командной строки для просмотра и управления журналами systemd в Linux. Она заменяет традиционные файлы логов в ",[21,26,27],{},"/var/log/"," и предоставляет единый интерфейс для всех служб, ядра и системных событий. С помощью этой шпаргалки вы быстро освоите основные команды для фильтрации, поиска и анализа логов, что критично для диагностики сбоев, мониторинга безопасности и устранения неполадок в работе сервисов.",[13,30,32],{"id":31},"требования-подготовка","Требования / Подготовка",[18,34,35],{},"Перед началом убедитесь, что:",[37,38,39,52,59],"ul",{},[40,41,42,43,47,48,51],"li",{},"Ваш дистрибутив использует ",[44,45,46],"strong",{},"systemd"," (проверьте командой ",[21,49,50],{},"systemctl --version","). Большинство современных дистрибутивов (Ubuntu 20.04+, Debian 10+, CentOS 8+, Fedora 35+) поддерживают systemd.",[40,53,54,55,58],{},"У вас есть доступ к терминалу с правами ",[44,56,57],{},"sudo"," для некоторых операций (например, просмотр всех логов или очистка).",[40,60,61,62,65,66,69],{},"Сервис ",[21,63,64],{},"systemd-journald"," активен (обычно запущен по умолчанию). Проверить статус: ",[21,67,68],{},"sudo systemctl status systemd-journald",".",[13,71,73],{"id":72},"шаг-1-базовый-просмотр-журналов","Шаг 1: Базовый просмотр журналов",[18,75,76,77,80],{},"Самая простая команда выводит ",[44,78,79],{},"все доступные записи"," журнала в хронологическом порядке (от старых к новым):",[82,83,88],"pre",{"className":84,"code":85,"language":86,"meta":87,"style":87},"language-bash shiki shiki-themes github-light github-dark","journalctl\n","bash","",[21,89,90],{"__ignoreMap":87},[91,92,95],"span",{"class":93,"line":94},"line",1,[91,96,85],{"class":97},"sScJk",[18,99,100,101,104,105,108,109,112],{},"По умолчанию вывод использует ",[44,102,103],{},"pager"," (обычно ",[21,106,107],{},"less","), что позволяет прокручивать логи. Для вывода всего сразу в терминал (без паузы) добавьте флаг ",[21,110,111],{},"--no-pager",":",[82,114,116],{"className":84,"code":115,"language":86,"meta":87,"style":87},"journalctl --no-pager\n",[21,117,118],{"__ignoreMap":87},[91,119,120,122],{"class":93,"line":94},[91,121,23],{"class":97},[91,123,125],{"class":124},"sj4cs"," --no-pager\n",[18,127,128,129,112],{},"Для постраничного просмотра вручную можно использовать конвейер с ",[21,130,107],{},[82,132,134],{"className":84,"code":133,"language":86,"meta":87,"style":87},"journalctl | less\n",[21,135,136],{"__ignoreMap":87},[91,137,138,140,144],{"class":93,"line":94},[91,139,23],{"class":97},[91,141,143],{"class":142},"szBVR"," |",[91,145,146],{"class":97}," less\n",[18,148,149,150,152,153,156,157,160],{},"В ",[21,151,107],{}," навигация: стрелки для прокрутки, ",[21,154,155],{},"q"," для выхода, ",[21,158,159],{},"/текст"," для поиска.",[13,162,164],{"id":163},"шаг-2-фильтрация-по-времени","Шаг 2: Фильтрация по времени",[18,166,167,168,171,172,175],{},"Часто нужно видеть логи за конкретный период. Используйте опции ",[21,169,170],{},"--since"," и ",[21,173,174],{},"--until",". Форматы времени гибкие:",[37,177,178,184,197],{},[40,179,180,181],{},"Абсолютное время: ",[21,182,183],{},"\"2024-01-01 14:30:00\"",[40,185,186,187,190,191,190,194],{},"Относительное: ",[21,188,189],{},"\"1 hour ago\"",", ",[21,192,193],{},"\"yesterday\"",[21,195,196],{},"\"today\"",[40,198,199,200],{},"Комбинирование: ",[21,201,202],{},"--since \"2024-01-01\" --until \"now\"",[18,204,205],{},"Пример: показать логи за последние 2 часа:",[82,207,209],{"className":84,"code":208,"language":86,"meta":87,"style":87},"journalctl --since \"2 hours ago\"\n",[21,210,211],{"__ignoreMap":87},[91,212,213,215,218],{"class":93,"line":94},[91,214,23],{"class":97},[91,216,217],{"class":124}," --since",[91,219,221],{"class":220},"sZZnC"," \"2 hours ago\"\n",[18,223,224],{},"Или за определённый день:",[82,226,228],{"className":84,"code":227,"language":86,"meta":87,"style":87},"journalctl --since \"2024-02-15\" --until \"2024-02-16\"\n",[21,229,230],{"__ignoreMap":87},[91,231,232,234,236,239,242],{"class":93,"line":94},[91,233,23],{"class":97},[91,235,217],{"class":124},[91,237,238],{"class":220}," \"2024-02-15\"",[91,240,241],{"class":124}," --until",[91,243,244],{"class":220}," \"2024-02-16\"\n",[13,246,248],{"id":247},"шаг-3-фильтрация-по-службе-юниту-systemd","Шаг 3: Фильтрация по службе (юниту systemd)",[18,250,251,252,255,256,259],{},"Чтобы увидеть логи только конкретного сервиса, используйте флаг ",[21,253,254],{},"-u"," (или ",[21,257,258],{},"--unit",") с именем юнита. Например, для SSH-демона:",[82,261,263],{"className":84,"code":262,"language":86,"meta":87,"style":87},"journalctl -u sshd.service\n",[21,264,265],{"__ignoreMap":87},[91,266,267,269,272],{"class":93,"line":94},[91,268,23],{"class":97},[91,270,271],{"class":124}," -u",[91,273,274],{"class":220}," sshd.service\n",[18,276,277],{},"Можно фильтровать несколько юнитов одновременно:",[82,279,281],{"className":84,"code":280,"language":86,"meta":87,"style":87},"journalctl -u nginx.service -u mysql.service\n",[21,282,283],{"__ignoreMap":87},[91,284,285,287,289,292,294],{"class":93,"line":94},[91,286,23],{"class":97},[91,288,271],{"class":124},[91,290,291],{"class":220}," nginx.service",[91,293,271],{"class":124},[91,295,296],{"class":220}," mysql.service\n",[18,298,299,300,69],{},"Если не знаете точное имя юнита, найдите его через ",[21,301,302],{},"systemctl list-units --type=service",[13,304,306],{"id":305},"шаг-4-фильтрация-по-уровню-приоритета-лога","Шаг 4: Фильтрация по уровню приоритета (лога)",[18,308,309,310,313,314,190,317,190,320,323,324,190,327,190,330,190,333,336,337,255,340,343],{},"Журналы systemd имеют уровни серьёзности: ",[21,311,312],{},"emerg"," (критический), ",[21,315,316],{},"alert",[21,318,319],{},"crit",[21,321,322],{},"err"," (ошибки), ",[21,325,326],{},"warning",[21,328,329],{},"notice",[21,331,332],{},"info",[21,334,335],{},"debug",". Фильтруйте по приоритету флагом ",[21,338,339],{},"-p",[21,341,342],{},"--priority",").",[18,345,346],{},"Пример: только ошибки и выше (err, crit, alert, emerg):",[82,348,350],{"className":84,"code":349,"language":86,"meta":87,"style":87},"journalctl -p err\n",[21,351,352],{"__ignoreMap":87},[91,353,354,356,359],{"class":93,"line":94},[91,355,23],{"class":97},[91,357,358],{"class":124}," -p",[91,360,361],{"class":220}," err\n",[18,363,364,365,367,368,370],{},"Или диапазон: от ",[21,366,326],{}," до ",[21,369,322],{}," (включительно):",[82,372,374],{"className":84,"code":373,"language":86,"meta":87,"style":87},"journalctl -p warning..err\n",[21,375,376],{"__ignoreMap":87},[91,377,378,380,382],{"class":93,"line":94},[91,379,23],{"class":97},[91,381,358],{"class":124},[91,383,384],{"class":220}," warning..err\n",[18,386,387,388,390],{},"Уровень ",[21,389,335],{}," покажет самую подробную отладочную информацию.",[13,392,394],{"id":393},"шаг-5-поиск-по-ключевым-словам","Шаг 5: Поиск по ключевым словам",[18,396,397,399,400,403],{},[21,398,23],{}," не имеет встроенного grep, но вы можете передать вывод в ",[21,401,402],{},"grep"," для поиска текста. Это полезно для отлова конкретных сообщений.",[18,405,406],{},"Пример: найти все записи, содержащие слово \"failed\":",[82,408,410],{"className":84,"code":409,"language":86,"meta":87,"style":87},"journalctl | grep \"failed\"\n",[21,411,412],{"__ignoreMap":87},[91,413,414,416,418,421],{"class":93,"line":94},[91,415,23],{"class":97},[91,417,143],{"class":142},[91,419,420],{"class":97}," grep",[91,422,423],{"class":220}," \"failed\"\n",[18,425,426,427,112],{},"Для регистронезависимого поиска добавьте ",[21,428,429],{},"-i",[82,431,433],{"className":84,"code":432,"language":86,"meta":87,"style":87},"journalctl | grep -i \"authentication\"\n",[21,434,435],{"__ignoreMap":87},[91,436,437,439,441,443,446],{"class":93,"line":94},[91,438,23],{"class":97},[91,440,143],{"class":142},[91,442,420],{"class":97},[91,444,445],{"class":124}," -i",[91,447,448],{"class":220}," \"authentication\"\n",[18,450,451],{},"Комбинируйте с фильтрами по времени или службе для точности:",[82,453,455],{"className":84,"code":454,"language":86,"meta":87,"style":87},"journalctl -u nginx.service --since \"1 hour ago\" | grep \"404\"\n",[21,456,457],{"__ignoreMap":87},[91,458,459,461,463,465,467,470,472,474],{"class":93,"line":94},[91,460,23],{"class":97},[91,462,271],{"class":124},[91,464,291],{"class":220},[91,466,217],{"class":124},[91,468,469],{"class":220}," \"1 hour ago\"",[91,471,143],{"class":142},[91,473,420],{"class":97},[91,475,476],{"class":220}," \"404\"\n",[478,479],"in-article-ad",{},[13,481,483],{"id":482},"шаг-6-ограничение-вывода-и-мониторинг-в-реальном-времени","Шаг 6: Ограничение вывода и мониторинг в реальном времени",[18,485,486,487,255,490,493],{},"Чтобы не засорять терминал, ограничьте количество строк флагом ",[21,488,489],{},"-n",[21,491,492],{},"--lines","). Покажет последние N записей:",[82,495,497],{"className":84,"code":496,"language":86,"meta":87,"style":87},"journalctl -n 50  # последние 50 строк\n",[21,498,499],{"__ignoreMap":87},[91,500,501,503,506,509],{"class":93,"line":94},[91,502,23],{"class":97},[91,504,505],{"class":124}," -n",[91,507,508],{"class":124}," 50",[91,510,512],{"class":511},"sJ8bj","  # последние 50 строк\n",[18,514,515,516,519,520,255,523,526],{},"Для отслеживания новых логов в реальном времени (аналог ",[21,517,518],{},"tail -f",") используйте ",[21,521,522],{},"-f",[21,524,525],{},"--follow","):",[82,528,530],{"className":84,"code":529,"language":86,"meta":87,"style":87},"journalctl -f\n",[21,531,532],{"__ignoreMap":87},[91,533,534,536],{"class":93,"line":94},[91,535,23],{"class":97},[91,537,538],{"class":124}," -f\n",[18,540,541,542,545],{},"Нажмите ",[21,543,544],{},"Ctrl+C"," для выхода из режима跟随.",[13,547,549],{"id":548},"шаг-7-форматы-вывода-и-экспорт","Шаг 7: Форматы вывода и экспорт",[18,551,552,553,555,556,559,560,255,563,526],{},"По умолчанию ",[21,554,23],{}," использует формат ",[21,557,558],{},"short"," (читаемый). Для машинной обработки доступны другие форматы через ",[21,561,562],{},"-o",[21,564,565],{},"--output",[37,567,568,578,584,590],{},[40,569,570,573,574,577],{},[21,571,572],{},"json"," или ",[21,575,576],{},"json-pretty",": структурированный JSON.",[40,579,580,583],{},[21,581,582],{},"export",": бинарный формат для обмена.",[40,585,586,589],{},[21,587,588],{},"cat",": только сообщения без метаданных.",[40,591,592,595],{},[21,593,594],{},"short-iso",": с ISO-временными метками.",[18,597,598],{},"Пример экспорта в JSON:",[82,600,602],{"className":84,"code":601,"language":86,"meta":87,"style":87},"journalctl -o json > logs.json\n",[21,603,604],{"__ignoreMap":87},[91,605,606,608,611,614,617],{"class":93,"line":94},[91,607,23],{"class":97},[91,609,610],{"class":124}," -o",[91,612,613],{"class":220}," json",[91,615,616],{"class":142}," >",[91,618,619],{"class":220}," logs.json\n",[18,621,622,623,625],{},"Для просмотра в формате ",[21,624,588],{}," (только текст сообщений):",[82,627,629],{"className":84,"code":628,"language":86,"meta":87,"style":87},"journalctl -o cat | grep \"error\"\n",[21,630,631],{"__ignoreMap":87},[91,632,633,635,637,640,642,644],{"class":93,"line":94},[91,634,23],{"class":97},[91,636,610],{"class":124},[91,638,639],{"class":220}," cat",[91,641,143],{"class":142},[91,643,420],{"class":97},[91,645,646],{"class":220}," \"error\"\n",[13,648,650],{"id":649},"шаг-8-управление-размером-журнала-и-очистка","Шаг 8: Управление размером журнала и очистка",[18,652,653],{},"Журналы systemd могут занимать много места. Узнайте текущее использование диска:",[82,655,657],{"className":84,"code":656,"language":86,"meta":87,"style":87},"journalctl --disk-usage\n",[21,658,659],{"__ignoreMap":87},[91,660,661,663],{"class":93,"line":94},[91,662,23],{"class":97},[91,664,665],{"class":124}," --disk-usage\n",[18,667,668,669,672],{},"Для очистки старых данных используйте команды ",[44,670,671],{},"вакуума"," (очистки):",[37,674,675,693,710],{},[40,676,677,678],{},"Удалить логи старше N дней (например, 7 дней):",[82,679,681],{"className":84,"code":680,"language":86,"meta":87,"style":87},"sudo journalctl --vacuum-time=7d\n",[21,682,683],{"__ignoreMap":87},[91,684,685,687,690],{"class":93,"line":94},[91,686,57],{"class":97},[91,688,689],{"class":220}," journalctl",[91,691,692],{"class":124}," --vacuum-time=7d\n",[40,694,695,696],{},"Ограничить общий размер журнала (например, 100 МБ):",[82,697,699],{"className":84,"code":698,"language":86,"meta":87,"style":87},"sudo journalctl --vacuum-size=100M\n",[21,700,701],{"__ignoreMap":87},[91,702,703,705,707],{"class":93,"line":94},[91,704,57],{"class":97},[91,706,689],{"class":220},[91,708,709],{"class":124}," --vacuum-size=100M\n",[40,711,712,713],{},"Оставить только последние N файлов журнала:",[82,714,716],{"className":84,"code":715,"language":86,"meta":87,"style":87},"sudo journalctl --vacuum-files=5\n",[21,717,718],{"__ignoreMap":87},[91,719,720,722,724],{"class":93,"line":94},[91,721,57],{"class":97},[91,723,689],{"class":220},[91,725,726],{"class":124}," --vacuum-files=5\n",[728,729,730],"blockquote",{},[18,731,732,733,736],{},"⚠️ ",[44,734,735],{},"Важно",": Очистка безвозвратно удаляет данные. Убедитесь, что вам не нужны старые логи для аудита или расследования.",[13,738,740],{"id":739},"шаг-9-работа-с-загрузками-boots","Шаг 9: Работа с загрузками (boots)",[18,742,743],{},"Journal systemd автоматически разделяет логи по загрузкам системы. Просмотрите список доступных загрузок с временными метками:",[82,745,747],{"className":84,"code":746,"language":86,"meta":87,"style":87},"journalctl --list-boots\n",[21,748,749],{"__ignoreMap":87},[91,750,751,753],{"class":93,"line":94},[91,752,23],{"class":97},[91,754,755],{"class":124}," --list-boots\n",[18,757,758],{},"Вывод показывает индекс загрузки (0 — текущая, -1 — предыдущая и т.д.) и временные диапазоны.",[18,760,761,762,255,765,768],{},"Чтобы увидеть логи конкретной загрузки, используйте ",[21,763,764],{},"-b",[21,766,767],{},"--boot",") с индексом:",[82,770,772],{"className":84,"code":771,"language":86,"meta":87,"style":87},"journalctl -b -1  # логи предыдущей загрузки\n",[21,773,774],{"__ignoreMap":87},[91,775,776,778,781,784],{"class":93,"line":94},[91,777,23],{"class":97},[91,779,780],{"class":124}," -b",[91,782,783],{"class":124}," -1",[91,785,786],{"class":511},"  # логи предыдущей загрузки\n",[13,788,790],{"id":789},"шаг-10-продвинутые-комбинации-и-примеры","Шаг 10: Продвинутые комбинации и примеры",[18,792,793],{},"Комбинируйте фильтры для точного поиска. Вот полезные примеры:",[37,795,796,819,841,863],{},[40,797,798,112,801],{},[44,799,800],{},"Логи конкретной службы за последний час",[82,802,804],{"className":84,"code":803,"language":86,"meta":87,"style":87},"journalctl -u nginx.service --since \"1 hour ago\"\n",[21,805,806],{"__ignoreMap":87},[91,807,808,810,812,814,816],{"class":93,"line":94},[91,809,23],{"class":97},[91,811,271],{"class":124},[91,813,291],{"class":220},[91,815,217],{"class":124},[91,817,818],{"class":220}," \"1 hour ago\"\n",[40,820,821,112,824],{},[44,822,823],{},"Ошибки ядра (kern) с уровнем err и выше",[82,825,827],{"className":84,"code":826,"language":86,"meta":87,"style":87},"journalctl -p err -k\n",[21,828,829],{"__ignoreMap":87},[91,830,831,833,835,838],{"class":93,"line":94},[91,832,23],{"class":97},[91,834,358],{"class":124},[91,836,837],{"class":220}," err",[91,839,840],{"class":124}," -k\n",[40,842,843,112,846],{},[44,844,845],{},"Логи текущей загрузки, отсортированные по времени (обратный порядок)",[82,847,849],{"className":84,"code":848,"language":86,"meta":87,"style":87},"journalctl -b -r  # -r для reverse (от новых к старым)\n",[21,850,851],{"__ignoreMap":87},[91,852,853,855,857,860],{"class":93,"line":94},[91,854,23],{"class":97},[91,856,780],{"class":124},[91,858,859],{"class":124}," -r",[91,861,862],{"class":511},"  # -r для reverse (от новых к старым)\n",[40,864,865,868,869,171,871,526,873],{},[44,866,867],{},"Поиск в логах с подсветкой"," (используя ",[21,870,107],{},[21,872,402],{},[82,874,876],{"className":84,"code":875,"language":86,"meta":87,"style":87},"journalctl | grep --color -E \"error|failed|warning\"\n",[21,877,878],{"__ignoreMap":87},[91,879,880,882,884,886,889,892],{"class":93,"line":94},[91,881,23],{"class":97},[91,883,143],{"class":142},[91,885,420],{"class":97},[91,887,888],{"class":124}," --color",[91,890,891],{"class":124}," -E",[91,893,894],{"class":220}," \"error|failed|warning\"\n",[13,896,898],{"id":897},"проверка-результата","Проверка результата",[18,900,901],{},"После выполнения команд убедитесь, что:",[37,903,904,907,914],{},[40,905,906],{},"Вывод содержит ожидаемые записи (например, при фильтрации по службе видите только логи этой службы).",[40,908,909,910,913],{},"При очистке ",[21,911,912],{},"journalctl --disk-usage"," показывает уменьшение размера.",[40,915,916],{},"Экспортированные файлы (JSON, TXT) корректно открываются и содержат данные.",[18,918,919],{},"Если вывод пуст, проверьте:",[37,921,922,925,931],{},[40,923,924],{},"Правильность фильтров (время, имя юнита).",[40,926,927,928,343],{},"Наличие логов за указанный период (",[21,929,930],{},"journalctl --list-boots",[40,932,933,934,343],{},"Права доступа (возможно, требуется ",[21,935,57],{},[13,937,939],{"id":938},"возможные-проблемы","Возможные проблемы",[941,942,944],"h3",{"id":943},"_1-ошибка-permission-denied-или-пустой-вывод-без-sudo","1. Ошибка \"Permission denied\" или пустой вывод без sudo",[18,946,947,948,950,951,343],{},"Некоторые логи (особенно системные) доступны только root. Решение: используйте ",[21,949,57],{}," перед командой или настройте группы доступа (например, добавьте пользователя в группу ",[21,952,953],{},"systemd-journal",[941,955,957],{"id":956},"_2-слишком-много-данных-команда-висит","2. Слишком много данных, команда \"висит\"",[18,959,960,961,190,963,190,965,967,968,970,971,69],{},"Журнал может быть огромным. Всегда применяйте фильтры (",[21,962,254],{},[21,964,170],{},[21,966,339],{},") или ограничение (",[21,969,489],{},"). Для быстрого просмотра последних записей: ",[21,972,973],{},"journalctl -n 100 --no-pager",[941,975,977],{"id":976},"_3-journalctl-не-находит-логи-за-определённый-период","3. journalctl не находит логи за определённый период",[18,979,980,981,983,984,69],{},"Возможно, система была перезагружена, и логи за тот период хранятся в другой \"загрузке\". Используйте ",[21,982,930],{}," для поиска нужного индекса и затем ",[21,985,986],{},"journalctl -b \u003Cиндекс>",[941,988,990],{"id":989},"_4-проблемы-с-очисткой-no-space-left-on-device-после-vacuum","4. Проблемы с очисткой: \"No space left on device\" после vacuum",[18,992,993,994,997,998,1001,1002,1004,1005,1008,1009,1012],{},"Команда ",[21,995,996],{},"--vacuum"," может не удалить файлы, если они используются. Остановите критические службы перед очисткой или используйте ",[21,999,1000],{},"--vacuum-time"," с осторожностью. В крайнем случае, временно остановите ",[21,1003,64],{},": ",[21,1006,1007],{},"sudo systemctl stop systemd-journald",", удалите файлы в ",[21,1010,1011],{},"/var/log/journal/",", затем запустите службу.",[941,1014,1016],{"id":1015},"_5-отсутствует-команда-journalctl","5. Отсутствует команда journalctl",[18,1018,1019,1020,1023,1024,1027],{},"В редких случаях (очень старые дистрибутивы или минимальные установки) systemd может не быть установлен. Проверьте presence: ",[21,1021,1022],{},"which journalctl",". Если нет, установите systemd через менеджер пакетов (например, ",[21,1025,1026],{},"sudo apt install systemd"," на Debian/Ubuntu), но будьте осторожны: замена init-системы может нарушить работу.",[1029,1030,1031],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":87,"searchDepth":1033,"depth":1033,"links":1034},2,[1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048],{"id":15,"depth":1033,"text":16},{"id":31,"depth":1033,"text":32},{"id":72,"depth":1033,"text":73},{"id":163,"depth":1033,"text":164},{"id":247,"depth":1033,"text":248},{"id":305,"depth":1033,"text":306},{"id":393,"depth":1033,"text":394},{"id":482,"depth":1033,"text":483},{"id":548,"depth":1033,"text":549},{"id":649,"depth":1033,"text":650},{"id":739,"depth":1033,"text":740},{"id":789,"depth":1033,"text":790},{"id":897,"depth":1033,"text":898},{"id":938,"depth":1033,"text":939,"children":1049},[1050,1052,1053,1054,1055],{"id":943,"depth":1051,"text":944},3,{"id":956,"depth":1051,"text":957},{"id":976,"depth":1051,"text":977},{"id":989,"depth":1051,"text":990},{"id":1015,"depth":1051,"text":1016},null,"2026-02-16 12:30:03","Изучите мощные команды journalctl для анализа логов systemd в Linux. Пошаговая шпаргалка с примерами для быстрой диагностики проблем. Начните сейчас!","medium",false,"10-15 мин","md",[1064,1067,1070,1073],{"question":1065,"answer":1066},"Как показать все логи с помощью journalctl?","Выполните `journalctl` без параметров для просмотра всех записей. Добавьте `--no-pager` для вывода без паузы или используйте `journalctl | less` для навигации.",{"question":1068,"answer":1069},"Как фильтровать логи по конкретной службе?","Используйте флаг `-u` с именем юнита, например: `journalctl -u nginx.service` для логов веб-сервера nginx.",{"question":1071,"answer":1072},"Как очистить журналы journalctl, чтобы освободить место?","Примените `journalctl --vacuum-time=7d` для удаления логов старше 7 дней или `journalctl --vacuum-size=100M` для ограничения размера журнала 100 МБ.",{"question":1074,"answer":1075},"Почему journalctl не показывает логи, хотя служба работает?","Возможно, логи записываются в другой журнал или у вас недостаточно прав. Проверьте статус systemd-journald и попробуйте с `sudo`.",[1077,1080,1083,1086,1089,1092],{"name":1078,"text":1079},"Просмотр всех журналов","Запустите `journalctl` без аргументов для отображения полного журнала. Используйте `--no-pager` для вывода в терминал или `| less` для постраничного просмотра.",{"name":1081,"text":1082},"Фильтрация по времени","Укажите временной диапазон с помощью `--since` и `--until`, например: `journalctl --since \"2024-01-01\" --until \"1 hour ago\"`.",{"name":1084,"text":1085},"Фильтрация по службе","Отфильтруйте логи по systemd юниту с флагом `-u`, как `journalctl -u sshd.service` для SSH-демона.",{"name":1087,"text":1088},"Поиск и анализ логов","Используйте `grep` для поиска по ключевым словам: `journalctl | grep \"failed\"`. Комбинируйте с другими фильтрами для точности.",{"name":1090,"text":1091},"Очистка и управление журналами","Удалите старые логи командами `journalctl --vacuum-time=3d` или ограничьте размер `journalctl --vacuum-size=500M`.",{"name":1093,"text":1094},"Экспорт логов в файл","Сохраните логи в файл с `journalctl > logs.txt` или в JSON-формате: `journalctl -o json > logs.json`.","PT15M",[1097,1098,1099,1100,1101,1102,1103,1104,1105,1106],"journalctl команды","как использовать journalctl","просмотр логов systemd","фильтрация журналов Linux","journalctl примеры","systemd journalctl шпаргалка","анализ логов через journalctl","journalctl вывод","команда journalctl для начинающих","диагностика проблем Linux с journalctl","ru_RU",{},true,"/guides/linux/journalctl-commands-cheatsheet","linux",[1113,1114,1115],"/guides/linux/systemd-basics","/guides/linux/log-rotation-configuration","/errors/linux/systemd-failed-to-start","Гайды Linux",{"title":5,"description":1058},"guides/linux/journalctl-commands-cheatsheet","Эта шпаргалка предоставляет полный список полезных команд journalctl для работы с журналами systemd в Linux. Вы научитесь фильтровать, просматривать и анализировать логи.",[1111,46,23,1121,1122,1123,1124,1125],"логи","гайд","sysadmin","logs","troubleshooting","guide","avw4_O2Flm67FRllu9YiQOUmatp2Iqkhj7MNQDP45fQ",{"data":1129,"body":1130},{},{"type":1131,"children":1132},"root",[1133],{"type":1134,"tag":18,"props":1135,"children":1136},"element",{},[1137,1140,1145,1147,1152,1154,1160],{"type":1138,"value":1139},"text","Выполните ",{"type":1134,"tag":21,"props":1141,"children":1143},{"className":1142},[],[1144],{"type":1138,"value":23},{"type":1138,"value":1146}," без параметров для просмотра всех записей. Добавьте ",{"type":1134,"tag":21,"props":1148,"children":1150},{"className":1149},[],[1151],{"type":1138,"value":111},{"type":1138,"value":1153}," для вывода без паузы или используйте ",{"type":1134,"tag":21,"props":1155,"children":1157},{"className":1156},[],[1158],{"type":1138,"value":1159},"journalctl | less",{"type":1138,"value":1161}," для навигации.",{"data":1163,"body":1164},{},{"type":1131,"children":1165},[1166],{"type":1134,"tag":18,"props":1167,"children":1168},{},[1169,1171,1176,1178,1184],{"type":1138,"value":1170},"Используйте флаг ",{"type":1134,"tag":21,"props":1172,"children":1174},{"className":1173},[],[1175],{"type":1138,"value":254},{"type":1138,"value":1177}," с именем юнита, например: ",{"type":1134,"tag":21,"props":1179,"children":1181},{"className":1180},[],[1182],{"type":1138,"value":1183},"journalctl -u nginx.service",{"type":1138,"value":1185}," для логов веб-сервера nginx.",{"data":1187,"body":1188},{},{"type":1131,"children":1189},[1190],{"type":1134,"tag":18,"props":1191,"children":1192},{},[1193,1195,1201,1203,1209],{"type":1138,"value":1194},"Примените ",{"type":1134,"tag":21,"props":1196,"children":1198},{"className":1197},[],[1199],{"type":1138,"value":1200},"journalctl --vacuum-time=7d",{"type":1138,"value":1202}," для удаления логов старше 7 дней или ",{"type":1134,"tag":21,"props":1204,"children":1206},{"className":1205},[],[1207],{"type":1138,"value":1208},"journalctl --vacuum-size=100M",{"type":1138,"value":1210}," для ограничения размера журнала 100 МБ.",{"data":1212,"body":1213},{},{"type":1131,"children":1214},[1215],{"type":1134,"tag":18,"props":1216,"children":1217},{},[1218,1220,1225],{"type":1138,"value":1219},"Возможно, логи записываются в другой журнал или у вас недостаточно прав. Проверьте статус systemd-journald и попробуйте с ",{"type":1134,"tag":21,"props":1221,"children":1223},{"className":1222},[],[1224],{"type":1138,"value":57},{"type":1138,"value":69},{"data":1227,"body":1228},{},{"type":1131,"children":1229},[1230],{"type":1134,"tag":18,"props":1231,"children":1232},{},[1233,1235,1240,1242,1247,1249,1255],{"type":1138,"value":1234},"Запустите ",{"type":1134,"tag":21,"props":1236,"children":1238},{"className":1237},[],[1239],{"type":1138,"value":23},{"type":1138,"value":1241}," без аргументов для отображения полного журнала. Используйте ",{"type":1134,"tag":21,"props":1243,"children":1245},{"className":1244},[],[1246],{"type":1138,"value":111},{"type":1138,"value":1248}," для вывода в терминал или ",{"type":1134,"tag":21,"props":1250,"children":1252},{"className":1251},[],[1253],{"type":1138,"value":1254},"| less",{"type":1138,"value":1256}," для постраничного просмотра.",{"data":1258,"body":1259},{},{"type":1131,"children":1260},[1261],{"type":1134,"tag":18,"props":1262,"children":1263},{},[1264,1266,1271,1272,1277,1279,1285],{"type":1138,"value":1265},"Укажите временной диапазон с помощью ",{"type":1134,"tag":21,"props":1267,"children":1269},{"className":1268},[],[1270],{"type":1138,"value":170},{"type":1138,"value":171},{"type":1134,"tag":21,"props":1273,"children":1275},{"className":1274},[],[1276],{"type":1138,"value":174},{"type":1138,"value":1278},", например: ",{"type":1134,"tag":21,"props":1280,"children":1282},{"className":1281},[],[1283],{"type":1138,"value":1284},"journalctl --since \"2024-01-01\" --until \"1 hour ago\"",{"type":1138,"value":69},{"data":1287,"body":1288},{},{"type":1131,"children":1289},[1290],{"type":1134,"tag":18,"props":1291,"children":1292},{},[1293,1295,1300,1302,1308],{"type":1138,"value":1294},"Отфильтруйте логи по systemd юниту с флагом ",{"type":1134,"tag":21,"props":1296,"children":1298},{"className":1297},[],[1299],{"type":1138,"value":254},{"type":1138,"value":1301},", как ",{"type":1134,"tag":21,"props":1303,"children":1305},{"className":1304},[],[1306],{"type":1138,"value":1307},"journalctl -u sshd.service",{"type":1138,"value":1309}," для SSH-демона.",{"data":1311,"body":1312},{},{"type":1131,"children":1313},[1314],{"type":1134,"tag":18,"props":1315,"children":1316},{},[1317,1319,1324,1326,1332],{"type":1138,"value":1318},"Используйте ",{"type":1134,"tag":21,"props":1320,"children":1322},{"className":1321},[],[1323],{"type":1138,"value":402},{"type":1138,"value":1325}," для поиска по ключевым словам: ",{"type":1134,"tag":21,"props":1327,"children":1329},{"className":1328},[],[1330],{"type":1138,"value":1331},"journalctl | grep \"failed\"",{"type":1138,"value":1333},". Комбинируйте с другими фильтрами для точности.",{"data":1335,"body":1336},{},{"type":1131,"children":1337},[1338],{"type":1134,"tag":18,"props":1339,"children":1340},{},[1341,1343,1349,1351,1357],{"type":1138,"value":1342},"Удалите старые логи командами ",{"type":1134,"tag":21,"props":1344,"children":1346},{"className":1345},[],[1347],{"type":1138,"value":1348},"journalctl --vacuum-time=3d",{"type":1138,"value":1350}," или ограничьте размер ",{"type":1134,"tag":21,"props":1352,"children":1354},{"className":1353},[],[1355],{"type":1138,"value":1356},"journalctl --vacuum-size=500M",{"type":1138,"value":69},{"data":1359,"body":1360},{},{"type":1131,"children":1361},[1362],{"type":1134,"tag":18,"props":1363,"children":1364},{},[1365,1367,1373,1375,1381],{"type":1138,"value":1366},"Сохраните логи в файл с ",{"type":1134,"tag":21,"props":1368,"children":1370},{"className":1369},[],[1371],{"type":1138,"value":1372},"journalctl > logs.txt",{"type":1138,"value":1374}," или в JSON-формате: ",{"type":1134,"tag":21,"props":1376,"children":1378},{"className":1377},[],[1379],{"type":1138,"value":1380},"journalctl -o json > logs.json",{"type":1138,"value":69},[1383,2726],{"id":1384,"title":1385,"appliesTo":1386,"author":8,"body":1391,"canonical":1056,"code":1056,"createdAt":2672,"description":2673,"difficulty":2674,"draft":1060,"estimatedTime":1061,"extension":1062,"faq":2675,"howToSteps":2688,"howToTotalTime":1095,"image":1056,"keywords":2704,"locale":1107,"meta":2715,"navigation":1109,"path":1114,"platform":1111,"related":2716,"section":1116,"seo":2719,"severity":1056,"stem":2720,"summary":2721,"tags":2722,"twitterCreator":1056,"twitterSite":1056,"type":1126,"updatedAt":2672,"__hash__":2725},"content_ru/guides/linux/log-rotation-configuration.md","Настройка ротации логов в Linux: подробное руководство",[1387,1388,1389,1390],"Ubuntu 20.04/22.04","Debian 11/12","CentOS 8/Rocky 8","Fedora 35+",{"type":10,"value":1392,"toc":2651},[1393,1395,1406,1417,1420,1422,1425,1485,1489,1493,1496,1506,1509,1565,1568,1572,1575,1596,1606,1621,1624,1706,1711,1799,1814,1818,1821,1900,1910,1914,1917,1935,1951,1954,1986,1989,2005,2008,2021,2034,2038,2049,2063,2066,2072,2075,2082,2141,2143,2147,2154,2276,2278,2281,2381,2384,2386,2390,2403,2418,2421,2425,2437,2464,2468,2481,2494,2505,2509,2527,2551,2555,2562,2602,2606,2613,2639,2648],[13,1394,16],{"id":15},[18,1396,1397,1398,1401,1402,1405],{},"Логи приложений и системы в Linux неумолимо растут со временем. Если оставить их без контроля, они могут занять весь доступный диск, привести к сбоям сервисов и усложнить поиск нужных событий. ",[44,1399,1400],{},"Ротация логов"," — это стандартный механизм автоматического архивирования, сжатия и удаления устаревших записей. В большинстве дистрибутивов Linux для этого используется утилита ",[44,1403,1404],{},"logrotate",". После настройки вы получите:",[37,1407,1408,1411,1414],{},[40,1409,1410],{},"Контроль над использованием дискового пространства.",[40,1412,1413],{},"Упрощённый анализ thanks структурированным архивам.",[40,1415,1416],{},"Автоматизацию рутинной задачи без участия администратора.",[18,1418,1419],{},"Этот гайд покажет, как настроить logrotate для ваших приложений на современных системах (Ubuntu, Debian, CentOS, Fedora).",[13,1421,32],{"id":31},[18,1423,1424],{},"Перед началом убедитесь, что у вас есть:",[1426,1427,1428,1436,1454,1472],"ol",{},[40,1429,1430,1433,1434,343],{},[44,1431,1432],{},"Доступ к терминалу Linux"," с правами суперпользователя (",[21,1435,57],{},[40,1437,1438,1441,1442],{},[44,1439,1440],{},"Установленная утилита logrotate"," (обычно предустановлена). Проверить можно командой:\n",[82,1443,1445],{"className":84,"code":1444,"language":86,"meta":87,"style":87},"logrotate --version\n",[21,1446,1447],{"__ignoreMap":87},[91,1448,1449,1451],{"class":93,"line":94},[91,1450,1404],{"class":97},[91,1452,1453],{"class":124}," --version\n",[40,1455,1456,1459,1460,1463,1464,1467,1468,1471],{},[44,1457,1458],{},"Знание расположения логов"," вашего приложения. Например, для веб-сервера Apache это ",[21,1461,1462],{},"/var/log/apache2/",", для Nginx — ",[21,1465,1466],{},"/var/log/nginx/",". Если логи хранятся в нестандартном месте, найдите их через ",[21,1469,1470],{},"find"," или проверьте конфигурацию приложения.",[40,1473,1474,1477,1478,190,1481,1484],{},[44,1475,1476],{},"Базовое понимание текстовых редакторов"," (",[21,1479,1480],{},"nano",[21,1482,1483],{},"vim",") для редактирования конфигурационных файлов.",[13,1486,1488],{"id":1487},"пошаговая-инструкция","Пошаговая инструкция",[941,1490,1492],{"id":1491},"шаг-1-проверьте-установку-logrotate","Шаг 1: Проверьте установку logrotate",[18,1494,1495],{},"Хотя logrotate обычно идёт в комплекте с системой, в минимальных установках его может не быть. Проверьте версию:",[82,1497,1498],{"className":84,"code":1444,"language":86,"meta":87,"style":87},[21,1499,1500],{"__ignoreMap":87},[91,1501,1502,1504],{"class":93,"line":94},[91,1503,1404],{"class":97},[91,1505,1453],{"class":124},[18,1507,1508],{},"Если команда не найдена, установите:",[37,1510,1511,1544],{},[40,1512,1513,1516,1517],{},[44,1514,1515],{},"Для Ubuntu/Debian",":\n",[82,1518,1520],{"className":84,"code":1519,"language":86,"meta":87,"style":87},"sudo apt update\nsudo apt install logrotate\n",[21,1521,1522,1532],{"__ignoreMap":87},[91,1523,1524,1526,1529],{"class":93,"line":94},[91,1525,57],{"class":97},[91,1527,1528],{"class":220}," apt",[91,1530,1531],{"class":220}," update\n",[91,1533,1534,1536,1538,1541],{"class":93,"line":1033},[91,1535,57],{"class":97},[91,1537,1528],{"class":220},[91,1539,1540],{"class":220}," install",[91,1542,1543],{"class":220}," logrotate\n",[40,1545,1546,1516,1549],{},[44,1547,1548],{},"Для CentOS/Rocky/Fedora",[82,1550,1552],{"className":84,"code":1551,"language":86,"meta":87,"style":87},"sudo dnf install logrotate\n",[21,1553,1554],{"__ignoreMap":87},[91,1555,1556,1558,1561,1563],{"class":93,"line":94},[91,1557,57],{"class":97},[91,1559,1560],{"class":220}," dnf",[91,1562,1540],{"class":220},[91,1564,1543],{"class":220},[18,1566,1567],{},"После установки повторно проверьте версию. Актуальные версии (3.15+) поддерживают все современные опции.",[941,1569,1571],{"id":1570},"шаг-2-создайте-конфигурационный-файл","Шаг 2: Создайте конфигурационный файл",[18,1573,1574],{},"Logrotate использует две типы конфигураций:",[37,1576,1577,1587],{},[40,1578,1579,1582,1583,1586],{},[44,1580,1581],{},"Глобальный файл"," ",[21,1584,1585],{},"/etc/logrotate.conf"," — задаёт общие параметры (например, как часто запускаться).",[40,1588,1589,1595],{},[44,1590,1591,1592],{},"Файлы в ",[21,1593,1594],{},"/etc/logrotate.d/"," — содержат настройки для конкретных приложений. Это предпочтительный способ, так как он не мешает обновлениям пакета.",[18,1597,1598,1599,1602,1603,112],{},"Создайте файл для вашего приложения. Например, для кастомного приложения ",[21,1600,1601],{},"myapp",", логи которого лежат в ",[21,1604,1605],{},"/var/log/myapp/",[82,1607,1609],{"className":84,"code":1608,"language":86,"meta":87,"style":87},"sudo nano /etc/logrotate.d/myapp\n",[21,1610,1611],{"__ignoreMap":87},[91,1612,1613,1615,1618],{"class":93,"line":94},[91,1614,57],{"class":97},[91,1616,1617],{"class":220}," nano",[91,1619,1620],{"class":220}," /etc/logrotate.d/myapp\n",[18,1622,1623],{},"Вставьте базовую конфигурацию:",[82,1625,1629],{"className":1626,"code":1627,"language":1628,"meta":87,"style":87},"language-ini shiki shiki-themes github-light github-dark","/var/log/myapp/*.log {\n    daily\n    rotate 7\n    compress\n    delaycompress\n    missingok\n    notifempty\n    create 644 root root\n    sharedscripts\n    postrotate\n        systemctl reload myapp.service > /dev/null 2>&1 || true\n    endscript\n}\n","ini",[21,1630,1631,1636,1641,1646,1652,1658,1664,1670,1676,1682,1688,1694,1700],{"__ignoreMap":87},[91,1632,1633],{"class":93,"line":94},[91,1634,1635],{},"/var/log/myapp/*.log {\n",[91,1637,1638],{"class":93,"line":1033},[91,1639,1640],{},"    daily\n",[91,1642,1643],{"class":93,"line":1051},[91,1644,1645],{},"    rotate 7\n",[91,1647,1649],{"class":93,"line":1648},4,[91,1650,1651],{},"    compress\n",[91,1653,1655],{"class":93,"line":1654},5,[91,1656,1657],{},"    delaycompress\n",[91,1659,1661],{"class":93,"line":1660},6,[91,1662,1663],{},"    missingok\n",[91,1665,1667],{"class":93,"line":1666},7,[91,1668,1669],{},"    notifempty\n",[91,1671,1673],{"class":93,"line":1672},8,[91,1674,1675],{},"    create 644 root root\n",[91,1677,1679],{"class":93,"line":1678},9,[91,1680,1681],{},"    sharedscripts\n",[91,1683,1685],{"class":93,"line":1684},10,[91,1686,1687],{},"    postrotate\n",[91,1689,1691],{"class":93,"line":1690},11,[91,1692,1693],{},"        systemctl reload myapp.service > /dev/null 2>&1 || true\n",[91,1695,1697],{"class":93,"line":1696},12,[91,1698,1699],{},"    endscript\n",[91,1701,1703],{"class":93,"line":1702},13,[91,1704,1705],{},"}\n",[18,1707,1708],{},[44,1709,1710],{},"Пояснение параметров:",[37,1712,1713,1719,1734,1740,1753,1759,1765,1771,1777,1787],{},[40,1714,1715,1718],{},[21,1716,1717],{},"/var/log/myapp/*.log"," — путь к логам (поддерживаются wildcards).",[40,1720,1721,1724,1725,190,1728,190,1731,69],{},[21,1722,1723],{},"daily"," — ротация каждый день. Другие варианты: ",[21,1726,1727],{},"weekly",[21,1729,1730],{},"monthly",[21,1732,1733],{},"yearly",[40,1735,1736,1739],{},[21,1737,1738],{},"rotate 7"," — хранить 7 архивов (после этого самые старые удаляются).",[40,1741,1742,1745,1746,1749,1750,343],{},[21,1743,1744],{},"compress"," — сжимать архивы с помощью ",[21,1747,1748],{},"gzip"," (файлы получат расширение ",[21,1751,1752],{},".gz",[40,1754,1755,1758],{},[21,1756,1757],{},"delaycompress"," — сжимать не сразу, а на следующем цикле (удобно, если приложение ещё пишет в предыдущий файл).",[40,1760,1761,1764],{},[21,1762,1763],{},"missingok"," — не выдавать ошибку, если файл лога отсутствует.",[40,1766,1767,1770],{},[21,1768,1769],{},"notifempty"," — не ротировать пустые файлы.",[40,1772,1773,1776],{},[21,1774,1775],{},"create 644 root root"," — создавать новый файл лога после ротации с указанными правами и владельцем.",[40,1778,1779,1782,1783,1786],{},[21,1780,1781],{},"sharedscripts"," — выполнять ",[21,1784,1785],{},"postrotate"," только один раз для всех файлов, а не для каждого.",[40,1788,1789,1791,1792,1795,1796,1798],{},[21,1790,1785],{}," / ",[21,1793,1794],{},"endscript"," — команды после ротации. Здесь мы перезагружаем сервис ",[21,1797,1601],{},", чтобы он начал писать в новый файл. Если сервис не требует перезагрузки, блок можно удалить.",[18,1800,1801,1802,190,1805,190,1808,1811,1812,343],{},"Сохраните файл (",[21,1803,1804],{},"Ctrl+O",[21,1806,1807],{},"Enter",[21,1809,1810],{},"Ctrl+X"," в ",[21,1813,1480],{},[941,1815,1817],{"id":1816},"шаг-3-настройте-параметры-ротации-под-ваши-нужды","Шаг 3: Настройте параметры ротации под ваши нужды",[18,1819,1820],{},"Отредактируйте конфиг, учитывая особенности:",[37,1822,1823,1835,1844,1861,1871,1883],{},[40,1824,1825,1828,1829,1832,1833,69],{},[44,1826,1827],{},"Частота ротации",": если логи очень активные, используйте ",[21,1830,1831],{},"hourly"," (но потребуется дополнительная настройка cron/systemd). Для большинства случаев достаточно ",[21,1834,1723],{},[40,1836,1837,1004,1840,1843],{},[44,1838,1839],{},"Хранение",[21,1841,1842],{},"rotate 30"," — хранить месяц. Учитывайте доступное место: сжатие уменьшает размер в 5-10 раз.",[40,1845,1846,1849,1850,1852,1853,1860],{},[44,1847,1848],{},"Размер вместо времени",": если нужно ротировать по размеру, замените ",[21,1851,1723],{}," на:\n",[82,1854,1858],{"className":1855,"code":1857,"language":1138},[1856],"language-text","size 100M\n",[21,1859,1857],{"__ignoreMap":87},"\nЭто значит ротация при достижении 100 МБ.",[40,1862,1863,1866,1867,171,1869,69],{},[44,1864,1865],{},"Удаление без сжатия",": если сжатие не нужно, уберите ",[21,1868,1744],{},[21,1870,1757],{},[40,1872,1873,1876,1877],{},[44,1874,1875],{},"Логи нескольких каталогов",": можно указать несколько путей или использовать wildcards, например:\n",[82,1878,1881],{"className":1879,"code":1880,"language":1138},[1856],"/var/log/myapp/*.log /var/log/myapp/audit/*.log {\n    ...\n}\n",[21,1882,1880],{"__ignoreMap":87},[40,1884,1885,1888,1889,1892,1893,1896,1897,69],{},[44,1886,1887],{},"Права на новые файлы",": параметр ",[21,1890,1891],{},"create"," должен соответствовать тому, как приложение ожидает seeing файлы. Обычно ",[21,1894,1895],{},"644"," для обычных логов, но для защищённых может потребоваться ",[21,1898,1899],{},"600",[18,1901,1902,1905,1906,1909],{},[44,1903,1904],{},"Важно:"," Если приложение пишет логи напрямую в ",[21,1907,1908],{},"/dev/stdout"," (например, Docker-контейнеры), logrotate может не сработать — в таком случае ротацию нужно настраивать на уровне оркестратора.",[941,1911,1913],{"id":1912},"шаг-4-протестируйте-конфигурацию","Шаг 4: Протестируйте конфигурацию",[18,1915,1916],{},"Не ждите следующего запуска по расписанию — проверьте конфиг сразу:",[82,1918,1920],{"className":84,"code":1919,"language":86,"meta":87,"style":87},"sudo logrotate -d /etc/logrotate.conf\n",[21,1921,1922],{"__ignoreMap":87},[91,1923,1924,1926,1929,1932],{"class":93,"line":94},[91,1925,57],{"class":97},[91,1927,1928],{"class":220}," logrotate",[91,1930,1931],{"class":124}," -d",[91,1933,1934],{"class":220}," /etc/logrotate.conf\n",[18,1936,1937,1938,1941,1942,1945,1946,1950],{},"Флаг ",[21,1939,1940],{},"-d"," включает ",[44,1943,1944],{},"режим сухого запуска"," (dry-run): logrotate покажет, что ",[1947,1948,1949],"em",{},"сделал бы",", но не внесёт изменений.",[18,1952,1953],{},"В выводе ищите:",[37,1955,1956,1962,1968,1977],{},[40,1957,1958,1961],{},[21,1959,1960],{},"reading config file /etc/logrotate.d/myapp"," — конфиг загружен.",[40,1963,1964,1967],{},[21,1965,1966],{},"rotating pattern: /var/log/myapp/*.log"," — путь распознан.",[40,1969,1970,573,1973,1976],{},[21,1971,1972],{},"old log is removed",[21,1974,1975],{},"log does not need rotating"," — ожидаемое поведение.",[40,1978,1979,1004,1982,1985],{},[44,1980,1981],{},"Ошибки",[21,1983,1984],{},"error: error accessing /var/log/myapp/..."," — проблема с правами или путём.",[18,1987,1988],{},"Если всё выглядит хорошо, выполните принудительную ротацию для теста (но осторожно — это реально переместит файлы):",[82,1990,1992],{"className":84,"code":1991,"language":86,"meta":87,"style":87},"sudo logrotate -vf /etc/logrotate.conf\n",[21,1993,1994],{"__ignoreMap":87},[91,1995,1996,1998,2000,2003],{"class":93,"line":94},[91,1997,57],{"class":97},[91,1999,1928],{"class":220},[91,2001,2002],{"class":124}," -vf",[91,2004,1934],{"class":220},[18,2006,2007],{},"Флаги:",[37,2009,2010,2016],{},[40,2011,2012,2015],{},[21,2013,2014],{},"-v"," — подробный вывод.",[40,2017,2018,2020],{},[21,2019,522],{}," — принудительный запуск, даже если не пора.",[18,2022,2023,2024,2026,2027,2030,2031,69],{},"После этого проверьте директорию ",[21,2025,1605],{}," — должны появиться архивы (например, ",[21,2028,2029],{},"myapp.log.1.gz",") и новый файл ",[21,2032,2033],{},"myapp.log",[941,2035,2037],{"id":2036},"шаг-5-проверьте-статус-и-журнал","Шаг 5: Проверьте статус и журнал",[18,2039,2040,2041,2044,2045,2048],{},"Logrotate записывает, когда последний раз ротировал каждый файл, в ",[44,2042,2043],{},"файл статуса"," (по умолчанию ",[21,2046,2047],{},"/var/lib/logrotate/status","). Посмотрите его:",[82,2050,2052],{"className":84,"code":2051,"language":86,"meta":87,"style":87},"sudo cat /var/lib/logrotate/status\n",[21,2053,2054],{"__ignoreMap":87},[91,2055,2056,2058,2060],{"class":93,"line":94},[91,2057,57],{"class":97},[91,2059,639],{"class":220},[91,2061,2062],{"class":220}," /var/lib/logrotate/status\n",[18,2064,2065],{},"Вы увидите записи вроде:",[82,2067,2070],{"className":2068,"code":2069,"language":1138},[1856],"/var/log/myapp/myapp.log 2026-2-16-10:30:1\n",[21,2071,2069],{"__ignoreMap":87},[18,2073,2074],{},"Это подтверждает, что ротация прошла.",[18,2076,2077,2078,2081],{},"Также проверьте ",[44,2079,2080],{},"логи cron"," или systemd, чтобы убедиться, что задача запускается по расписанию:",[37,2083,2084,2111],{},[40,2085,2086,2089,2090,2104,2105,2108,2109,69],{},[44,2087,2088],{},"Для систем с cron"," (Ubuntu/Debian до recent versions):\n",[82,2091,2093],{"className":84,"code":2092,"language":86,"meta":87,"style":87},"grep logrotate /var/log/cron.log\n",[21,2094,2095],{"__ignoreMap":87},[91,2096,2097,2099,2101],{"class":93,"line":94},[91,2098,402],{"class":97},[91,2100,1928],{"class":220},[91,2102,2103],{"class":220}," /var/log/cron.log\n","\nИли посмотрите файлы в ",[21,2106,2107],{},"/etc/cron.daily/"," — там должен быть скрипт ",[21,2110,1404],{},[40,2112,2113,2116,2117,2133,2134,2137,2138,343],{},[44,2114,2115],{},"Для систем с systemd"," (CentOS 8+, Fedora, Ubuntu 22.04+):\n",[82,2118,2120],{"className":84,"code":2119,"language":86,"meta":87,"style":87},"systemctl status logrotate.timer\n",[21,2121,2122],{"__ignoreMap":87},[91,2123,2124,2127,2130],{"class":93,"line":94},[91,2125,2126],{"class":97},"systemctl",[91,2128,2129],{"class":220}," status",[91,2131,2132],{"class":220}," logrotate.timer\n","\nТаймер обычно настроен на ежедневный запуск. Если нужно изменить расписание, редактируйте юнит ",[21,2135,2136],{},"logrotate.timer"," (через ",[21,2139,2140],{},"systemctl edit logrotate.timer",[478,2142],{},[941,2144,2146],{"id":2145},"шаг-6-опционально-настройте-запуск-через-systemd-timer","Шаг 6: (Опционально) Настройте запуск через systemd timer",[18,2148,2149,2150,2153],{},"В современных дистрибутивах logrotate часто запускается через ",[44,2151,2152],{},"systemd timer",", а не cron. Это даёт более гибкое расписание.",[1426,2155,2156,2180,2265],{},[40,2157,2158,2159,2173,2176,2177,69],{},"Проверьте, активен ли таймер:",[82,2160,2162],{"className":84,"code":2161,"language":86,"meta":87,"style":87},"systemctl is-enabled logrotate.timer\n",[21,2163,2164],{"__ignoreMap":87},[91,2165,2166,2168,2171],{"class":93,"line":94},[91,2167,2126],{"class":97},[91,2169,2170],{"class":220}," is-enabled",[91,2172,2132],{"class":220},[2174,2175],"br",{},"Должно вернуть ",[21,2178,2179],{},"enabled",[40,2181,2182,2183,2200,2202,2203,2228,2230,2231,2237,2239,2240],{},"Если вы хотите изменить время запуска (например, на 2:30 вместо 6:25), создайте оверрайд:",[82,2184,2186],{"className":84,"code":2185,"language":86,"meta":87,"style":87},"sudo systemctl edit logrotate.timer\n",[21,2187,2188],{"__ignoreMap":87},[91,2189,2190,2192,2195,2198],{"class":93,"line":94},[91,2191,57],{"class":97},[91,2193,2194],{"class":220}," systemctl",[91,2196,2197],{"class":220}," edit",[91,2199,2132],{"class":220},[2174,2201],{},"В открывшемся редакторе добавьте:",[82,2204,2206],{"className":1626,"code":2205,"language":1628,"meta":87,"style":87},"[Timer]\nOnCalendar=daily\nPersistent=true\nRandomizedDelaySec=0\n",[21,2207,2208,2213,2218,2223],{"__ignoreMap":87},[91,2209,2210],{"class":93,"line":94},[91,2211,2212],{},"[Timer]\n",[91,2214,2215],{"class":93,"line":1033},[91,2216,2217],{},"OnCalendar=daily\n",[91,2219,2220],{"class":93,"line":1051},[91,2221,2222],{},"Persistent=true\n",[91,2224,2225],{"class":93,"line":1648},[91,2226,2227],{},"RandomizedDelaySec=0\n",[2174,2229],{},"Или укажите конкретное время:",[82,2232,2235],{"className":2233,"code":2234,"language":1138},[1856],"OnCalendar=*-*-* 02:30:00\n",[21,2236,2234],{"__ignoreMap":87},[2174,2238],{},"Сохраните и перезагрузите демон:",[82,2241,2243],{"className":84,"code":2242,"language":86,"meta":87,"style":87},"sudo systemctl daemon-reload\nsudo systemctl restart logrotate.timer\n",[21,2244,2245,2254],{"__ignoreMap":87},[91,2246,2247,2249,2251],{"class":93,"line":94},[91,2248,57],{"class":97},[91,2250,2194],{"class":220},[91,2252,2253],{"class":220}," daemon-reload\n",[91,2255,2256,2258,2260,2263],{"class":93,"line":1033},[91,2257,57],{"class":97},[91,2259,2194],{"class":220},[91,2261,2262],{"class":220}," restart",[91,2264,2132],{"class":220},[40,2266,2267,2268,2271,2272,2275],{},"Для ",[44,2269,2270],{},"ежечасной"," ротации создайте отдельный таймер или измените конфиг в ",[21,2273,2274],{},"/etc/cron.hourly/"," (если система использует cron). Но помните: частая ротация может нагружать систему, если логов очень много.",[13,2277,898],{"id":897},[18,2279,2280],{},"После настройки убедитесь, что ротация работает стабильно:",[1426,2282,2283,2295,2314,2336,2358],{},[40,2284,2285,2288,2289,2291,2292,69],{},[44,2286,2287],{},"Подождите следующий цикл"," (если тестировали через ",[21,2290,522],{},", пропустите этот шаг) или запустите вручную: ",[21,2293,2294],{},"sudo logrotate -vf /etc/logrotate.conf",[40,2296,2297,2300,2301,190,2304,255,2307,2310,2311,343],{},[44,2298,2299],{},"Проверьте наличие архивов",": в директории логов должны быть файлы с суффиксами ",[21,2302,2303],{},".1",[21,2305,2306],{},".1.gz",[21,2308,2309],{},".2"," и т.д., в зависимости от ",[21,2312,2313],{},"rotate",[40,2315,2316,1516,2319,2335],{},[44,2317,2318],{},"Убедитесь, что новые логи пишутся",[82,2320,2322],{"className":84,"code":2321,"language":86,"meta":87,"style":87},"tail -f /var/log/myapp/myapp.log\n",[21,2323,2324],{"__ignoreMap":87},[91,2325,2326,2329,2332],{"class":93,"line":94},[91,2327,2328],{"class":97},"tail",[91,2330,2331],{"class":124}," -f",[91,2333,2334],{"class":220}," /var/log/myapp/myapp.log\n","\nНовые записи должны появляться.",[40,2337,2338,1516,2341,2357],{},[44,2339,2340],{},"Контролируйте место на диске",[82,2342,2344],{"className":84,"code":2343,"language":86,"meta":87,"style":87},"du -sh /var/log/myapp/\n",[21,2345,2346],{"__ignoreMap":87},[91,2347,2348,2351,2354],{"class":93,"line":94},[91,2349,2350],{"class":97},"du",[91,2352,2353],{"class":124}," -sh",[91,2355,2356],{"class":220}," /var/log/myapp/\n","\nОбщий размер не должен бесконечно расти.",[40,2359,2360,2363,2364,2366,2367],{},[44,2361,2362],{},"Проверьте, что сервис не падает",": если в ",[21,2365,1785],{}," была перезагрузка, убедитесь, что приложение работает:\n",[82,2368,2370],{"className":84,"code":2369,"language":86,"meta":87,"style":87},"systemctl status myapp.service\n",[21,2371,2372],{"__ignoreMap":87},[91,2373,2374,2376,2378],{"class":93,"line":94},[91,2375,2126],{"class":97},[91,2377,2129],{"class":220},[91,2379,2380],{"class":220}," myapp.service\n",[18,2382,2383],{},"Если все пункты выполнены, ротация настроена корректно.",[13,2385,939],{"id":938},[941,2387,2389],{"id":2388},"ошибка-доступа-к-файлам-логов","Ошибка доступа к файлам логов",[18,2391,2392,1004,2395,2398,2399,2402],{},[44,2393,2394],{},"Симптом",[21,2396,2397],{},"error: error opening /var/log/myapp/*.log: Permission denied",".\n",[44,2400,2401],{},"Решение",": Logrotate запускается от root, но если логи принадлежат другому пользователю, убедитесь, что у root есть права на чтение. Проверьте владельца:",[82,2404,2406],{"className":84,"code":2405,"language":86,"meta":87,"style":87},"ls -la /var/log/myapp/\n",[21,2407,2408],{"__ignoreMap":87},[91,2409,2410,2413,2416],{"class":93,"line":94},[91,2411,2412],{"class":97},"ls",[91,2414,2415],{"class":124}," -la",[91,2417,2356],{"class":220},[18,2419,2420],{},"Если нужно, измените права или добавьте root в группу владельца.",[941,2422,2424],{"id":2423},"логи-не-ротируются","Логи не ротируются",[18,2426,2427,2429,2430,2433,2434,112],{},[44,2428,2394],{},": После ",[21,2431,2432],{},"logrotate -vf"," ничего не происходит, файлы не перемещаются.\n",[44,2435,2436],{},"Причины",[37,2438,2439,2449,2455],{},[40,2440,2441,2442,2445,2446,2448],{},"Файл не соответствует маске (например, ",[21,2443,2444],{},"myapp.log.1"," вместо ",[21,2447,2033],{},"). Уточните путь в конфиге.",[40,2450,2451,2452,2454],{},"Файл пустой, а стоит ",[21,2453,1769],{},". Уберите эту опцию или создайте тестовую запись.",[40,2456,2457,2458,2460,2461,2463],{},"Ротация уже недавно была (сравните дату в ",[21,2459,2047],{},"). Принудительный запуск с ",[21,2462,522],{}," должен помочь.",[941,2465,2467],{"id":2466},"сжатие-не-работает","Сжатие не работает",[18,2469,2470,2472,2473,2398,2475,2477,2478,2480],{},[44,2471,2394],{},": Архивы создаются, но без ",[21,2474,1752],{},[44,2476,2401],{},": Убедитесь, что установлен ",[21,2479,1748],{}," (обычно есть). Проверьте:",[82,2482,2484],{"className":84,"code":2483,"language":86,"meta":87,"style":87},"which gzip\n",[21,2485,2486],{"__ignoreMap":87},[91,2487,2488,2491],{"class":93,"line":94},[91,2489,2490],{"class":124},"which",[91,2492,2493],{"class":220}," gzip\n",[18,2495,2496,2497,2500,2501,2504],{},"Если нет, установите: ",[21,2498,2499],{},"sudo apt install gzip"," (Debian/Ubuntu) или ",[21,2502,2503],{},"sudo dnf install gzip"," (RHEL/Fedora).",[941,2506,2508],{"id":2507},"сервис-падает-после-ротации","Сервис падает после ротации",[18,2510,2511,2513,2514,2517,2518,2520,2521,2524,2525,112],{},[44,2512,2394],{},": После ротации приложение перестаёт писать логи или завершается.\n",[44,2515,2516],{},"Причина",": Команда в ",[21,2519,1785],{}," (например, ",[21,2522,2523],{},"systemctl reload",") может завершаться с ошибкой, если сервис не существует или требует полной перезагрузки.\n",[44,2526,2401],{},[37,2528,2529,2535,2544],{},[40,2530,2531,2532,69],{},"Проверьте, существует ли сервис: ",[21,2533,2534],{},"systemctl list-units | grep myapp",[40,2536,1318,2537,2540,2541,69],{},[21,2538,2539],{},"reload"," только если сервис поддерживает SIGHUP. Иначе используйте ",[21,2542,2543],{},"restart",[40,2545,2546,2547,2550],{},"Добавьте ",[21,2548,2549],{},"|| true"," в команду, чтобы игнорировать ошибки (как в примере выше).",[941,2552,2554],{"id":2553},"ротация-происходит-не-по-расписанию","Ротация происходит не по расписанию",[18,2556,2557,2559,2560,112],{},[44,2558,2394],{},": Файлы статуса не обновляются, архивов нет.\n",[44,2561,2401],{},[37,2563,2564,2581,2596],{},[40,2565,2267,2566,2569,2570,2572,2573,2576,2577,2580],{},[44,2567,2568],{},"cron",": убедитесь, что пакет ",[21,2571,2568],{}," запущен (",[21,2574,2575],{},"systemctl status cron","), и что скрипт ",[21,2578,2579],{},"/etc/cron.daily/logrotate"," существует и исполняем.",[40,2582,2267,2583,2585,2586,2588,2589,2592,2593,69],{},[44,2584,46],{},": проверьте таймер ",[21,2587,2136],{}," и его состояние (",[21,2590,2591],{},"systemctl list-timers | grep logrotate","). Возможно, таймер отключён — включите: ",[21,2594,2595],{},"sudo systemctl enable --now logrotate.timer",[40,2597,2598,2599,343],{},"Если вы только что настроили конфиг, убедитесь, что он синтаксически корректен (проверьте через ",[21,2600,2601],{},"logrotate -d",[941,2603,2605],{"id":2604},"диск-всё-равно-заполняется","Диск всё равно заполняется",[18,2607,2608,2610,2611,112],{},[44,2609,2394],{},": Даже после ротации место на диске не освобождается.\n",[44,2612,2436],{},[37,2614,2615,2624,2630,2636],{},[40,2616,2617,2619,2620,2623],{},[21,2618,2313],{}," установлен в слишком большое значение (например, ",[21,2621,2622],{},"rotate 365","). Уменьшите.",[40,2625,2626,2627,2629],{},"Сжатие отключено (",[21,2628,1744],{}," нет). Включите.",[40,2631,2632,2633,69],{},"Логи пишутся в другие директории, не охваченные конфигом. Найдите все логи приложения: ",[21,2634,2635],{},"find / -name \"*.log\" -path \"*myapp*\" 2>/dev/null",[40,2637,2638],{},"Сам процесс ротации создаёт временные файлы. Убедитесь, что на диске достаточно места для сжатия (временно нужно место под оригинал + архив).",[18,2640,2641,2642,171,2644,2647],{},"Если проблема остаётся, добавьте мониторинг диска (например, через ",[21,2643,2568],{},[21,2645,2646],{},"df -h",") и анализируйте, какие файлы растут.",[1029,2649,2650],{},"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}",{"title":87,"searchDepth":1033,"depth":1033,"links":2652},[2653,2654,2655,2663,2664],{"id":15,"depth":1033,"text":16},{"id":31,"depth":1033,"text":32},{"id":1487,"depth":1033,"text":1488,"children":2656},[2657,2658,2659,2660,2661,2662],{"id":1491,"depth":1051,"text":1492},{"id":1570,"depth":1051,"text":1571},{"id":1816,"depth":1051,"text":1817},{"id":1912,"depth":1051,"text":1913},{"id":2036,"depth":1051,"text":2037},{"id":2145,"depth":1051,"text":2146},{"id":897,"depth":1033,"text":898},{"id":938,"depth":1033,"text":939,"children":2665},[2666,2667,2668,2669,2670,2671],{"id":2388,"depth":1051,"text":2389},{"id":2423,"depth":1051,"text":2424},{"id":2466,"depth":1051,"text":2467},{"id":2507,"depth":1051,"text":2508},{"id":2553,"depth":1051,"text":2554},{"id":2604,"depth":1051,"text":2605},"2026-02-16 14:01:26","Научитесь настраивать автоматическую ротацию логов в Linux с помощью утилиты logrotate. Пошаговые инструкции для Ubuntu, Debian, CentOS. Управляйте дисковым пространством эффективно!","easy",[2676,2679,2682,2685],{"answer":2677,"question":2678},"Ротация логов — это процесс архивации, сжатия и удаления старых файлов логов. Она предотвращает бесконтрольный рост логов, который может заполнить весь диск, и упрощает поиск актуальной информации.","Что такое ротация логов и зачем она нужна?",{"answer":2680,"question":2681},"Выполните тестовый запуск с флагом `-d` (dry-run) или проверьте статус в файле `/var/lib/logrotate/status`. Также убедитесь, что появляются архивированные логи (например, `.gz` файлы).","Как проверить, что logrotate работает корректно?",{"answer":2683,"question":2684},"Logrotate работает по расписанию (обычно ежедневно через cron). Для ротации в реальном времени рассмотрите инструменты вроде `logadm` или настройку демона приложения на создание новых файлов при достижении размера.","Можно ли ротировать логи в реальном времени?",{"answer":2686,"question":2687},"Проверьте параметр `rotate` в конфиге — он задаёт количество хранимых архивов. Также убедитесь, что у logrotate есть права на удаление файлов и что дисковое пространство не переполнено.","Что делать, если logrotate не удаляет старые логи?",[2689,2692,2695,2698,2701],{"name":2690,"text":2691},"Проверьте установку logrotate","Убедитесь, что утилита logrotate установлена, выполнив `logrotate --version`. Если её нет, установите через `apt` или `dnf`.",{"name":2693,"text":2694},"Создайте конфигурационный файл","Добавьте файл в `/etc/logrotate.d/` с настройками ротации для вашего приложения, указав путь к логам и параметры.",{"name":2696,"text":2697},"Настройте параметры ротации","Задайте частоту (`daily`, `weekly`), количество архивов (`rotate`), сжатие (`compress`) и другие опции в конфиге.",{"name":2699,"text":2700},"Протестируйте конфигурацию","Выполните `sudo logrotate -d /etc/logrotate.conf` для проверки без применения изменений. Ищите ошибки в выводе.",{"name":2702,"text":2703},"Проверьте статус ротации","Посмотрите файл `/var/lib/logrotate/status`, чтобы убедиться, что ротация записывается и происходит по расписанию.",[2705,2706,2707,2708,2709,2710,2711,2712,2713,2714],"ротация логов linux","logrotate настройка","как настроить ротацию логов","очистка логов ubuntu","logrotate конфиг","автоматическая ротация логов","ротация логов centos","logrotate примеры","ротация логов debian","logrotate tutorial",{},[2717,2718],"/guides/linux/disk-space-management","/guides/linux/journald-configuration",{"title":1385,"description":2673},"guides/linux/log-rotation-configuration","Это руководство поможет вам настроить ротацию логов в Linux, чтобы контролировать использование дискового пространства и упростить анализ логов. Вы научитесь создавать конфигурации, тестировать и диагностировать проблемы.",[1111,1404,2723,1123,2724],"администрирование","ротация логов","xrj4joxF08kh3g4eidASwmOvil8zUTxQd2YlrISuHbk",{"id":2727,"title":2728,"appliesTo":2729,"author":8,"body":2734,"canonical":1056,"code":3593,"createdAt":3594,"description":3595,"difficulty":1059,"draft":1060,"estimatedTime":3596,"extension":1062,"faq":3597,"howToSteps":3610,"howToTotalTime":3629,"image":1056,"keywords":3630,"locale":1107,"meta":3639,"navigation":1109,"path":1115,"platform":1111,"related":3640,"section":3644,"seo":3645,"severity":3646,"stem":3647,"summary":3648,"tags":3649,"twitterCreator":1056,"twitterSite":1056,"type":3653,"updatedAt":3594,"__hash__":3654},"content_ru/errors/linux/systemd-failed-to-start.md","systemd-failed-to-start: причины и методы исправления ошибки запуска",[2730,2731,2732,2733,1390],"systemd 245+","Ubuntu 20.04+","Debian 11+","CentOS 8+",{"type":10,"value":2735,"toc":3577},[2736,2743,2754,2760,2773,2777,2780,2857,2861,2867,2870,2943,2959,2963,2966,3087,3091,3196,3200,3203,3289,3293,3359,3361,3365,3368,3493,3497,3500,3574],[13,2737,2739,2740],{"id":2738},"что-означает-ошибка-systemd-failed-to-start","Что означает ошибка ",[21,2741,2742],{},"systemd-failed-to-start",[18,2744,2745,2746,2749,2750,2753],{},"Ошибка ",[44,2747,2748],{},"Failed to start"," — это общий статус, который systemd присваивает службе (юниту), когда процесс её запуска завершился с ненулевым кодом возврата, превысил заданный таймаут или столкнулся с критической проблемой при инициализации. В выводе команды ",[21,2751,2752],{},"systemctl status"," она выглядит как:",[82,2755,2758],{"className":2756,"code":2757,"language":1138},[1856],"● some-service.service - Some Service Description\n   Loaded: loaded (/etc/systemd/system/some-service.service; enabled; vendor preset: enabled)\n   Active: **failed** (Result: exit-code) since Thu 2026-02-15 10:30:00 MSK; 1min 30s ago\n  Process: 1234 ExecStart=/usr/bin/some-service (code=exited, status=1/FAILURE)\n",[21,2759,2757],{"__ignoreMap":87},[18,2761,2762,2763,171,2766,255,2769,2772],{},"Ключевые флаги: ",[21,2764,2765],{},"Active: failed",[21,2767,2768],{},"Result: exit-code",[21,2770,2771],{},"timeout","). Эта ошибка блокирует работу сервиса и может помешать загрузке системы, если юнит критичен.",[13,2774,2776],{"id":2775},"причины-возникновения","Причины возникновения",[18,2778,2779],{},"Причины носят конкретный технический характер:",[1426,2781,2782,2806,2819,2825,2838,2847],{},[40,2783,2784,1477,2787,2790,2791,2794,2795,190,2798,2801,2802,2805],{},[44,2785,2786],{},"Некорректный конфигурационный файл юнита",[21,2788,2789],{},".service","). Ошибки в секциях ",[21,2792,2793],{},"[Service]"," (неверный путь в ",[21,2796,2797],{},"ExecStart",[21,2799,2800],{},"ExecStartPre","), ",[21,2803,2804],{},"[Install]"," или синтаксис.",[40,2807,2808,2811,2812,2815,2816,343],{},[44,2809,2810],{},"Недостаток прав доступа",". Служба пытается прочитать/записать в каталог, к которому у неё нет прав (например, ",[21,2813,2814],{},"/var/log/app/","), или запускается от неправильного пользователя (",[21,2817,2818],{},"User=",[40,2820,2821,2824],{},[44,2822,2823],{},"Конфликт ресурсов",". Порт уже занят другим процессом, недостаточно памяти (OOM Killer), не хватает дескрипторов файлов.",[40,2826,2827,2830,2831,573,2834,2837],{},[44,2828,2829],{},"Зависимости не выполнены",". Указанные в ",[21,2832,2833],{},"Requires=",[21,2835,2836],{},"After="," службы не запустились или завершились с ошибкой.",[40,2839,2840,2843,2844,2846],{},[44,2841,2842],{},"Повреждение бинарного файла или зависимостей приложения",". Файл, указанный в ",[21,2845,2797],{},", отсутствует, неисправен или не может загрузить нужные библиотеки.",[40,2848,2849,2852,2853,2856],{},[44,2850,2851],{},"Превышение таймаута",". Приложение долго не отвечает на запросы инициализации, и systemd убивает его по истечении ",[21,2854,2855],{},"TimeoutStartSec="," (по умолчанию 90 сек).",[13,2858,2860],{"id":2859},"способы-решения","Способы решения",[941,2862,2864,2865],{"id":2863},"способ-1-анализ-логов-службы-через-journalctl","Способ 1: Анализ логов службы через ",[21,2866,23],{},[18,2868,2869],{},"Это первый и самый важный шаг. Логи systemd содержат детальный вывод программы.",[1426,2871,2872,2878,2901,2919],{},[40,2873,2874,2875,343],{},"Узнайте точное имя службы (например, ",[21,2876,2877],{},"nginx.service",[40,2879,2880,2881,1516,2884],{},"Выполните команду для просмотра логов ",[44,2882,2883],{},"за текущую загрузку",[82,2885,2887],{"className":84,"code":2886,"language":86,"meta":87,"style":87},"journalctl -u nginx.service -b --no-pager\n",[21,2888,2889],{"__ignoreMap":87},[91,2890,2891,2893,2895,2897,2899],{"class":93,"line":94},[91,2892,23],{"class":97},[91,2894,271],{"class":124},[91,2896,291],{"class":220},[91,2898,780],{"class":124},[91,2900,125],{"class":124},[40,2902,2903,2904,190,2907,190,2910,190,2913,190,2916,69],{},"Внимательно изучите последние 20-30 строк. Ищите слова ",[44,2905,2906],{},"Failed",[44,2908,2909],{},"Error",[44,2911,2912],{},"(code=exited, status=...)",[44,2914,2915],{},"Permission denied",[44,2917,2918],{},"No such file or directory",[40,2920,2921,2922],{},"Если лог обширный, фильтруйте по уровню ошибки:\n",[82,2923,2925],{"className":84,"code":2924,"language":86,"meta":87,"style":87},"journalctl -u nginx.service -b -p err --no-pager\n",[21,2926,2927],{"__ignoreMap":87},[91,2928,2929,2931,2933,2935,2937,2939,2941],{"class":93,"line":94},[91,2930,23],{"class":97},[91,2932,271],{"class":124},[91,2934,291],{"class":220},[91,2936,780],{"class":124},[91,2938,358],{"class":124},[91,2940,837],{"class":220},[91,2942,125],{"class":124},[728,2944,2945],{},[18,2946,2947,2948,2951,2952,2955,2956,2958],{},"💡 ",[44,2949,2950],{},"Совет",": Добавьте флаг ",[21,2953,2954],{},"-e"," для открытия лога сразу в конце, или ",[21,2957,522],{}," для отслеживания в реальном времени при перезапуске службы.",[941,2960,2962],{"id":2961},"способ-2-проверка-и-исправление-конфигурационного-файла","Способ 2: Проверка и исправление конфигурационного файла",[18,2964,2965],{},"Ошибки в юнит-файле — частая причина.",[1426,2967,2968,2996,3018,3071],{},[40,2969,2970,2971],{},"Найдите файл службы:\n",[82,2972,2974],{"className":84,"code":2973,"language":86,"meta":87,"style":87},"systemctl status nginx.service | grep Loaded\n# Вывод: Loaded: loaded (/etc/systemd/system/nginx.service; enabled; ...)\n",[21,2975,2976,2991],{"__ignoreMap":87},[91,2977,2978,2980,2982,2984,2986,2988],{"class":93,"line":94},[91,2979,2126],{"class":97},[91,2981,2129],{"class":220},[91,2983,291],{"class":220},[91,2985,143],{"class":142},[91,2987,420],{"class":97},[91,2989,2990],{"class":220}," Loaded\n",[91,2992,2993],{"class":93,"line":1033},[91,2994,2995],{"class":511},"# Вывод: Loaded: loaded (/etc/systemd/system/nginx.service; enabled; ...)\n",[40,2997,2998,2999,3017],{},"Проверьте синтаксис:\n",[82,3000,3002],{"className":84,"code":3001,"language":86,"meta":87,"style":87},"sudo systemd-analyze verify /etc/systemd/system/nginx.service\n",[21,3003,3004],{"__ignoreMap":87},[91,3005,3006,3008,3011,3014],{"class":93,"line":94},[91,3007,57],{"class":97},[91,3009,3010],{"class":220}," systemd-analyze",[91,3012,3013],{"class":220}," verify",[91,3015,3016],{"class":220}," /etc/systemd/system/nginx.service\n","\nКоманда покажет строку с ошибкой, если она есть (например, \"Invalid command 'Execstar', not part of a unit configuration\").",[40,3019,3020,3021,3024,3025],{},"Откройте файл в редакторе (",[21,3022,3023],{},"sudo nano /etc/systemd/system/nginx.service",") и проверьте:\n",[37,3026,3027,3042,3052,3064],{},[40,3028,3029,3030,190,3032,3034,3035,573,3038,3041],{},"Пути в ",[21,3031,2797],{},[21,3033,2800],{},": существуют ли они? (",[21,3036,3037],{},"which some-binary",[21,3039,3040],{},"ls -la /path/to/file",")",[40,3043,3044,3045,3048,3049,343],{},"Права на исполняемый файл (",[21,3046,3047],{},"ls -l /usr/bin/some-binary"," — должен быть ",[21,3050,3051],{},"-rwxr-xr-x",[40,3053,3054,3055,3057,3058,171,3060,3063],{},"Секцию ",[21,3056,2793],{},": правильно ли указаны ",[21,3059,2818],{},[21,3061,3062],{},"Group=","? Существует ли такой пользователь/группа?",[40,3065,3066,3067,3070],{},"Директиву ",[21,3068,3069],{},"WorkingDirectory=",": существует ли каталог?",[40,3072,3073,3074],{},"После исправлений выполните:\n",[82,3075,3077],{"className":84,"code":3076,"language":86,"meta":87,"style":87},"sudo systemctl daemon-reload\n",[21,3078,3079],{"__ignoreMap":87},[91,3080,3081,3083,3085],{"class":93,"line":94},[91,3082,57],{"class":97},[91,3084,2194],{"class":220},[91,3086,2253],{"class":220},[941,3088,3090],{"id":3089},"способ-3-проверка-зависимостей-и-конфликтов-портовресурсов","Способ 3: Проверка зависимостей и конфликтов портов/ресурсов",[1426,3092,3093,3125,3151],{},[40,3094,3095,3098,3099,3124],{},[44,3096,3097],{},"Проверьте, не занят ли порт"," (если служба сетевая):\n",[82,3100,3102],{"className":84,"code":3101,"language":86,"meta":87,"style":87},"sudo ss -tulpn | grep :80  # Замените 80 на порт вашей службы\n",[21,3103,3104],{"__ignoreMap":87},[91,3105,3106,3108,3111,3114,3116,3118,3121],{"class":93,"line":94},[91,3107,57],{"class":97},[91,3109,3110],{"class":220}," ss",[91,3112,3113],{"class":124}," -tulpn",[91,3115,143],{"class":142},[91,3117,420],{"class":97},[91,3119,3120],{"class":220}," :80",[91,3122,3123],{"class":511},"  # Замените 80 на порт вашей службы\n","\nЕсли порт занят другим процессом, найдите и остановите его или измените порт в конфиге службы.",[40,3126,3127,1516,3130,3147,3148,69],{},[44,3128,3129],{},"Проверьте, все ли требуемые службы работают",[82,3131,3133],{"className":84,"code":3132,"language":86,"meta":87,"style":87},"systemctl list-dependencies nginx.service --reverse\n",[21,3134,3135],{"__ignoreMap":87},[91,3136,3137,3139,3142,3144],{"class":93,"line":94},[91,3138,2126],{"class":97},[91,3140,3141],{"class":220}," list-dependencies",[91,3143,291],{"class":220},[91,3145,3146],{"class":124}," --reverse\n","\nЭто покажет, какие службы зависят от nginx. Убедитесь, что они в состоянии ",[21,3149,3150],{},"active (running)",[40,3152,3153,1516,3156,3195],{},[44,3154,3155],{},"Проверьте наличие свободных ресурсов",[82,3157,3159],{"className":84,"code":3158,"language":86,"meta":87,"style":87},"free -h        # Память\ndf -h /var     # Дисковое пространство (особенно для логов)\nulimit -n      # Лимит дескрипторов файлов (может быть мал)\n",[21,3160,3161,3172,3185],{"__ignoreMap":87},[91,3162,3163,3166,3169],{"class":93,"line":94},[91,3164,3165],{"class":97},"free",[91,3167,3168],{"class":124}," -h",[91,3170,3171],{"class":511},"        # Память\n",[91,3173,3174,3177,3179,3182],{"class":93,"line":1033},[91,3175,3176],{"class":97},"df",[91,3178,3168],{"class":124},[91,3180,3181],{"class":220}," /var",[91,3183,3184],{"class":511},"     # Дисковое пространство (особенно для логов)\n",[91,3186,3187,3190,3192],{"class":93,"line":1051},[91,3188,3189],{"class":124},"ulimit",[91,3191,505],{"class":124},[91,3193,3194],{"class":511},"      # Лимит дескрипторов файлов (может быть мал)\n","\nНедостаток любого ресурса может привести к падению службы при старте.",[941,3197,3199],{"id":3198},"способ-4-восстановление-из-пакета-или-ручная-переустановка","Способ 4: Восстановление из пакета или ручная переустановка",[18,3201,3202],{},"Если служба установлена из пакетного менеджера (apt, dnf, yum), её конфигурация могла быть повреждена.",[1426,3204,3205,3248,3270],{},[40,3206,3207,1516,3210,3240,3241,3244,3245,69],{},[44,3208,3209],{},"Debian/Ubuntu",[82,3211,3213],{"className":84,"code":3212,"language":86,"meta":87,"style":87},"sudo apt update\nsudo apt install --reinstall nginx  # Замените nginx на имя пакета\n",[21,3214,3215,3223],{"__ignoreMap":87},[91,3216,3217,3219,3221],{"class":93,"line":94},[91,3218,57],{"class":97},[91,3220,1528],{"class":220},[91,3222,1531],{"class":220},[91,3224,3225,3227,3229,3231,3234,3237],{"class":93,"line":1033},[91,3226,57],{"class":97},[91,3228,1528],{"class":220},[91,3230,1540],{"class":220},[91,3232,3233],{"class":124}," --reinstall",[91,3235,3236],{"class":220}," nginx",[91,3238,3239],{"class":511},"  # Замените nginx на имя пакета\n","\nЭто восстановит файлы из ",[21,3242,3243],{},"/usr/share/doc/nginx/examples/"," или оригинальные конфиги в ",[21,3246,3247],{},"/etc/",[40,3249,3250,1516,3253],{},[44,3251,3252],{},"RHEL/CentOS/Fedora",[82,3254,3256],{"className":84,"code":3255,"language":86,"meta":87,"style":87},"sudo dnf reinstall nginx\n",[21,3257,3258],{"__ignoreMap":87},[91,3259,3260,3262,3264,3267],{"class":93,"line":94},[91,3261,57],{"class":97},[91,3263,1560],{"class":220},[91,3265,3266],{"class":220}," reinstall",[91,3268,3269],{"class":220}," nginx\n",[40,3271,3272,3273,3276,3277,3280,3281,3284,3285,3288],{},"После переустановки ",[44,3274,3275],{},"не перезаписывайте"," свои кастомные настройки в ",[21,3278,3279],{},"/etc/nginx/nginx.conf"," (если они были), если пакетный менеджер спросит. Сравните старый и новый файлы конфигурации юнита (",[21,3282,3283],{},"/lib/systemd/system/nginx.service"," vs ",[21,3286,3287],{},"/etc/systemd/system/nginx.service","). Часто правильнее скопировать свои правки в новый оригинальный файл, а не использовать старый повреждённый.",[13,3290,3292],{"id":3291},"профилактика","Профилактика",[37,3294,3295,3305,3323,3334,3349],{},[40,3296,3297,3300,3301,3304],{},[44,3298,3299],{},"Всегда проверяйте синтаксис"," конфигурационных файлов службы и самого приложения (например, ",[21,3302,3303],{},"nginx -t",") перед перезагрузкой systemd.",[40,3306,3307,3312,3313,3316,3317,573,3320,69],{},[44,3308,1318,3309],{},[21,3310,3311],{},"systemctl daemon-reload"," после ",[1947,3314,3315],{},"любого"," изменения файла юнита в ",[21,3318,3319],{},"/etc/systemd/system/",[21,3321,3322],{},"/lib/systemd/system/",[40,3324,3325,1477,3328,190,3330,3333],{},[44,3326,3327],{},"Настраивайте разумные таймауты",[21,3329,2855],{},[21,3331,3332],{},"TimeoutStopSec=",") для долгих служб, чтобы избежать ложных срабатываний.",[40,3335,3336,3339,3340,190,3342,190,3345,3348],{},[44,3337,3338],{},"Следите за правами"," на каталоги, с которыми работает служба (",[21,3341,27],{},[21,3343,3344],{},"/var/lib/",[21,3346,3347],{},"/run/","). Рекомендуется создавать отдельного пользователя/группу для каждой службы.",[40,3350,3351,3354,3355,3358],{},[44,3352,3353],{},"Периодически проверяйте логи"," на предмет предупреждений (",[21,3356,3357],{},"journalctl -u \u003Cслужба>.service -p warning",") до того, как они превратятся в ошибки.",[478,3360],{},[941,3362,3364],{"id":3363},"способ-n-откат-к-предыдущей-рабочей-конфигурации-если-используется-git","Способ N: Откат к предыдущей рабочей конфигурации (если используется Git)",[18,3366,3367],{},"Если конфигурационные файлы службы находятся под контролем версий (что хорошая практика):",[1426,3369,3370,3402,3437,3490],{},[40,3371,3372,3373],{},"Определите, когда служба последний раз работала:\n",[82,3374,3376],{"className":84,"code":3375,"language":86,"meta":87,"style":87},"sudo journalctl -u nginx.service -b --no-pager | grep -i \"started\\|failed\"\n",[21,3377,3378],{"__ignoreMap":87},[91,3379,3380,3382,3384,3386,3388,3390,3393,3395,3397,3399],{"class":93,"line":94},[91,3381,57],{"class":97},[91,3383,689],{"class":220},[91,3385,271],{"class":124},[91,3387,291],{"class":220},[91,3389,780],{"class":124},[91,3391,3392],{"class":124}," --no-pager",[91,3394,143],{"class":142},[91,3396,420],{"class":97},[91,3398,445],{"class":124},[91,3400,3401],{"class":220}," \"started\\|failed\"\n",[40,3403,3404,3405],{},"Найдите коммит, после которого начались сбои:\n",[82,3406,3408],{"className":84,"code":3407,"language":86,"meta":87,"style":87},"cd /etc/systemd/system/\ngit log --oneline -p -- nginx.service\n",[21,3409,3410,3418],{"__ignoreMap":87},[91,3411,3412,3415],{"class":93,"line":94},[91,3413,3414],{"class":124},"cd",[91,3416,3417],{"class":220}," /etc/systemd/system/\n",[91,3419,3420,3423,3426,3429,3431,3434],{"class":93,"line":1033},[91,3421,3422],{"class":97},"git",[91,3424,3425],{"class":220}," log",[91,3427,3428],{"class":124}," --oneline",[91,3430,358],{"class":124},[91,3432,3433],{"class":124}," --",[91,3435,3436],{"class":220}," nginx.service\n",[40,3438,3439,3440],{},"Временно верните предыдущую версию файла:\n",[82,3441,3443],{"className":84,"code":3442,"language":86,"meta":87,"style":87},"sudo git checkout \u003Cхэш_коммита> -- nginx.service\nsudo systemctl daemon-reload\nsudo systemctl restart nginx.service\n",[21,3444,3445,3472,3480],{"__ignoreMap":87},[91,3446,3447,3449,3452,3455,3458,3461,3465,3468,3470],{"class":93,"line":94},[91,3448,57],{"class":97},[91,3450,3451],{"class":220}," git",[91,3453,3454],{"class":220}," checkout",[91,3456,3457],{"class":142}," \u003C",[91,3459,3460],{"class":220},"хэш_коммит",[91,3462,3464],{"class":3463},"sVt8B","а",[91,3466,3467],{"class":142},">",[91,3469,3433],{"class":124},[91,3471,3436],{"class":220},[91,3473,3474,3476,3478],{"class":93,"line":1033},[91,3475,57],{"class":97},[91,3477,2194],{"class":220},[91,3479,2253],{"class":220},[91,3481,3482,3484,3486,3488],{"class":93,"line":1051},[91,3483,57],{"class":97},[91,3485,2194],{"class":220},[91,3487,2262],{"class":220},[91,3489,3436],{"class":220},[40,3491,3492],{},"Если это помогло, проанализируйте, какие именно изменения сломали службу, и внесите их более аккуратно.",[941,3494,3496],{"id":3495},"способ-n1-запуск-службы-вручную-для-отладки","Способ N+1: Запуск службы вручную для отладки",[18,3498,3499],{},"Иногда systemd \"затыкает\" вывод ошибки. Запустите исполняемый файл напрямую от того же пользователя, под которым работает служба.",[1426,3501,3502,3508],{},[40,3503,3504,3505,3507],{},"Узнайте пользователя из юнит-файла (",[21,3506,2818],{},") или из лога.",[40,3509,3510,3511,3566,3567,573,3570,3573],{},"Выполните:\n",[82,3512,3514],{"className":84,"code":3513,"language":86,"meta":87,"style":87},"sudo -u \u003Cпользователь> /usr/bin/some-service --verbose\n# или, если служба запускает скрипт:\nsudo -u \u003Cпользователь> /bin/bash -x /path/to/startup-script.sh\n",[21,3515,3516,3538,3543],{"__ignoreMap":87},[91,3517,3518,3520,3522,3524,3527,3530,3532,3535],{"class":93,"line":94},[91,3519,57],{"class":97},[91,3521,271],{"class":124},[91,3523,3457],{"class":142},[91,3525,3526],{"class":220},"пользовател",[91,3528,3529],{"class":3463},"ь",[91,3531,3467],{"class":142},[91,3533,3534],{"class":220}," /usr/bin/some-service",[91,3536,3537],{"class":124}," --verbose\n",[91,3539,3540],{"class":93,"line":1033},[91,3541,3542],{"class":511},"# или, если служба запускает скрипт:\n",[91,3544,3545,3547,3549,3551,3553,3555,3557,3560,3563],{"class":93,"line":1051},[91,3546,57],{"class":97},[91,3548,271],{"class":124},[91,3550,3457],{"class":142},[91,3552,3526],{"class":220},[91,3554,3529],{"class":3463},[91,3556,3467],{"class":142},[91,3558,3559],{"class":220}," /bin/bash",[91,3561,3562],{"class":124}," -x",[91,3564,3565],{"class":220}," /path/to/startup-script.sh\n","\nФлаги ",[21,3568,3569],{},"--verbose",[21,3571,3572],{},"-x"," (для bash) дадут подробный вывод. Часто ошибка становится очевидной при прямом запуске.",[1029,3575,3576],{},"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 .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 .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}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":87,"searchDepth":1033,"depth":1033,"links":3578},[3579,3581,3582,3589],{"id":2738,"depth":1033,"text":3580},"Что означает ошибка systemd-failed-to-start",{"id":2775,"depth":1033,"text":2776},{"id":2859,"depth":1033,"text":2860,"children":3583},[3584,3586,3587,3588],{"id":2863,"depth":1051,"text":3585},"Способ 1: Анализ логов службы через journalctl",{"id":2961,"depth":1051,"text":2962},{"id":3089,"depth":1051,"text":3090},{"id":3198,"depth":1051,"text":3199},{"id":3291,"depth":1033,"text":3292,"children":3590},[3591,3592],{"id":3363,"depth":1051,"text":3364},{"id":3495,"depth":1051,"text":3496},"systemd-failed","2026-02-15 16:38:58","Ошибка Failed to start в systemd мешает работе сервисов. Узнайте, как быстро диагностировать проблему через journalctl и исправить её проверенными способами. Пошаговая инструкция.","15-30 минут",[3598,3601,3604,3607],{"question":3599,"answer":3600},"Что означает ошибка 'Failed to start' в выводе systemctl?","Эта ошибка означает, что systemd не смог успешно запустить указанную службу (юнит). Причина может быть в самой службе, её конфигурации, зависимостях или конфликте ресурсов.",{"question":3602,"answer":3603},"Где искать подробную информацию о причине сбоя systemd?","Используйте команду `journalctl -u \u003Cимя_службы>.service --no-pager -b`, чтобы увидеть логи конкретной службы за текущую загрузку. Ключевые слова 'Failed', 'Error', 'exit code' укажут на проблему.",{"question":3605,"answer":3606},"Может ли ошибка 'Failed to start' быть вызвана недостатком прав?","Да, часто. Если служба запускается от неправильного пользователя (например, root, а должна от nginx) или в конфиге указан недоступный путь, systemd не сможет её запустить.",{"question":3608,"answer":3609},"Как временно обойти проблему, чтобы система загрузилась?","Можно отключить problematic юнит на загрузку командой `sudo systemctl disable \u003Cслужба>.service` или запустить систему в режиме восстановления, чтобы исправить конфигурацию.",[3611,3614,3617,3620,3623,3626],{"name":3612,"text":3613},"Проверьте точное состояние службы и код ошибки","Выполните `systemctl status \u003Cслужба>.service`. В разделе 'Active:' и последних строках лога будет указан код ошибки (например, 'exit-code' или 'timeout'). Запишите его.",{"name":3615,"text":3616},"Изучите полные логи службы через journalctl","Используйте `journalctl -u \u003Cслужба>.service -b --no-pager`. Прокрутите лог до конца и найдите строки с 'Failed', 'error', 'Permission denied', 'No such file'. Это ключ к причине.",{"name":3618,"text":3619},"Проверьте конфигурационный файл юнита на синтаксис","Выполните `systemd-analyze verify /etc/systemd/system/\u003Cслужба>.service` (или путь к вашему файлу). Команда проверит синтаксис и укажет на ошибки в секциях [Service], [Install].",{"name":3621,"text":3622},"Восстановите или переустановите проблемный пакет (если применимо)","Если служба относится к пакету (например, nginx, postgresql), попробуйте `sudo apt reinstall \u003Cпакет>` (Debian/Ubuntu) или `sudo dnf reinstall \u003Cпакет>` (RHEL/Fedora). Это восстановит оригинальные файлы конфигурации.",{"name":3624,"text":3625},"Вручную исправьте найденную проблему","В зависимости от логов: исправьте путь в `ExecStart`, права на файлы (`chmod`, `chown`), разрешите конфликт портов, добавьте недостающие зависимости (`Requires=`, `After=`) в конфиг юнита.",{"name":3627,"text":3628},"Перезапустите и включите службу","После исправлений выполните `sudo systemctl daemon-reload`, затем `sudo systemctl restart \u003Cслужба>.service` и `sudo systemctl enable \u003Cслужба>.service`. Проверьте статус снова.","PT20M",[3631,3632,3633,3634,3635,3636,3637,3638],"systemd failed to start","ошибка systemd юнит не запустился","failed to start служба systemd","как исправить systemd ошибка запуска","journalctl ошибка юнита","systemctl status failed","systemd dependency failed","восстановление systemd службы",{},[3641,3642,3643],"/errors/linux/systemd-unit-not-found","/errors/linux/systemd-circular-dependency","/guides/linux/systemd-service-creation","Ошибки Linux",{"title":2728,"description":3595},"high","errors/linux/systemd-failed-to-start","Статья подробно разбирает ошибку 'Failed to start' в systemd, её основные причины и 4 проверенных способа решения. Вы научитесь анализировать логи и восстанавливать работу служб.",[3650,46,2126,2723,23,3651,3652],"ошибки linux","service","boot","error","eIns-0UfD2cGVn2HufRiXZrk1AiyCuiXxeXglmXIzm0"]