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