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