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