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