[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/linux/linux-disk-full":3,"mdc--jmtkcq-key":1618,"mdc--w2bad0-key":1628,"mdc--ybe55w-key":1651,"mdc-ecwga-key":1667,"mdc-g6lvhy-key":1683,"mdc--k1aw00-key":1700,"mdc--m7vr7g-key":1724,"mdc--swguqc-key":1763,"mdc-esmxgb-key":1788,"related-/guides/linux/disk-usage-monitoring,/errors/linux/read-only-file-system,/guides/linux/log-rotation":1813},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":1550,"code":1550,"createdAt":1551,"description":1552,"difficulty":1553,"draft":1554,"estimatedTime":1555,"extension":1556,"faq":1557,"howToSteps":1570,"howToTotalTime":1586,"image":1550,"keywords":1587,"locale":1597,"meta":1598,"navigation":304,"path":1599,"platform":1600,"related":1601,"section":1605,"seo":1606,"severity":1607,"stem":1608,"summary":1609,"tags":1610,"twitterCreator":1550,"twitterSite":1550,"type":1616,"updatedAt":1551,"__hash__":1617},"content_ru/errors/linux/linux-disk-full.md","Linux Диск Полный: Быстрое Освобождение Места Пошагово",[7,8,9,10],"Ubuntu/Debian 20.04+","CentOS/RHEL 8+","Arch Linux","Любой дистрибутив с systemd","FixPedia Team",{"type":13,"value":14,"toc":1528},"minimark",[15,19,28,35,40,56,78,81,118,123,131,137,153,157,160,165,216,236,241,247,254,258,265,359,362,377,388,391,395,398,402,407,495,500,550,555,584,588,595,705,733,737,794,810,819,822,877,880,919,923,927,930,995,999,1002,1030,1034,1041,1064,1068,1074,1115,1119,1122,1378,1382,1387,1396,1404,1423,1428,1444,1449,1475,1487,1509,1512,1524],[16,17,5],"h1",{"id":18},"linux-диск-полный-быстрое-освобождение-места-пошагово",[20,21,22,23,27],"p",{},"Ситуация, когда на Linux-сервере или рабочей станции внезапно появляется ошибка ",[24,25,26],"strong",{},"«No space left on device»",", знакомая многим администраторам и пользователям. Система перестаёт работать корректно: не устанавливаются обновления, не пишутся логи, не работают базы данных. Эта проблема критична и требует немедленного решения.",[20,29,30,31,34],{},"В этом гайде вы получите ",[24,32,33],{},"конкретный, пошаговый план"," по диагностике и освобождению дискового пространства в Linux. Мы рассмотрим только рабочие команды, актуальные для большинства дистрибутивов (Ubuntu, Debian, CentOS, RHEL, Arch), и дадим рекомендации по профилактике.",[36,37,39],"h2",{"id":38},"шаг-1-диагностика-где-именно-закончилось-место","🔍 Шаг 1: Диагностика — где именно закончилось место?",[20,41,42,43,47,48,51,52,55],{},"Первым делом нужно понять, какой именно раздел (filesystem) заполнен. Ошибка может быть не в корневом ",[44,45,46],"code",{},"/",", а в отдельном смонтированном разделе, например ",[44,49,50],{},"/var"," или ",[44,53,54],{},"/home",".",[57,58,63],"pre",{"className":59,"code":60,"language":61,"meta":62,"style":62},"language-bash shiki shiki-themes github-light github-dark","df -h\n","bash","",[44,64,65],{"__ignoreMap":62},[66,67,70,74],"span",{"class":68,"line":69},"line",1,[66,71,73],{"class":72},"sScJk","df",[66,75,77],{"class":76},"sj4cs"," -h\n",[20,79,80],{},"Ключевые колонки:",[82,83,84,91,97,103,112],"ul",{},[85,86,87,90],"li",{},[24,88,89],{},"Filesystem"," — устройство или раздел.",[85,92,93,96],{},[24,94,95],{},"Size"," — общий размер.",[85,98,99,102],{},[24,100,101],{},"Used"," — использованное место.",[85,104,105,108,109,55],{},[24,106,107],{},"Use%"," — процент использования. ",[24,110,111],{},"Внимание на значения 90-100%",[85,113,114,117],{},[24,115,116],{},"Mounted on"," — точка монтирования.",[20,119,120],{},[24,121,122],{},"Пример вывода:",[57,124,129],{"className":125,"code":127,"language":128},[126],"language-text","Filesystem      Size  Used Avail Use% Mounted on\n/dev/sda1        50G   48G  1.5G  97% /\n/dev/sdb1       200G   30G  160G  16% /home\ntmpfs           7.8G  1.2G  6.6G  16% /tmp\n","text",[44,130,127],{"__ignoreMap":62},[20,132,133,134,136],{},"Здесь проблема в корневом разделе (",[44,135,46],{},").",[138,139,140],"blockquote",{},[20,141,142,143,146,147,149,150,55],{},"⚠️ ",[24,144,145],{},"Важно:"," Если команда ",[44,148,73],{}," не показывает проблему, проверьте inodes (индексы файлов) — они тоже могут закончиться: ",[44,151,152],{},"df -i",[36,154,156],{"id":155},"шаг-2-поиск-пожирателей-дискового-пространства","📊 Шаг 2: Поиск «пожирателей» дискового пространства",[20,158,159],{},"После определения проблемного раздела нужно найти, какие каталоги и файлы занимают больше всего места.",[161,162,164],"h3",{"id":163},"способ-a-стандартные-утилиты-du-и-sort","Способ A: Стандартные утилиты du и sort",[57,166,168],{"className":59,"code":167,"language":61,"meta":62,"style":62},"# Анализ 20 самых больших каталогов в корне (игнорируем ошибки доступа)\nsudo du -x / 2>/dev/null | sort -n | tail -20\n",[44,169,170,176],{"__ignoreMap":62},[66,171,172],{"class":68,"line":69},[66,173,175],{"class":174},"sJ8bj","# Анализ 20 самых больших каталогов в корне (игнорируем ошибки доступа)\n",[66,177,179,182,186,189,192,196,199,202,205,208,210,213],{"class":68,"line":178},2,[66,180,181],{"class":72},"sudo",[66,183,185],{"class":184},"sZZnC"," du",[66,187,188],{"class":76}," -x",[66,190,191],{"class":184}," /",[66,193,195],{"class":194},"szBVR"," 2>",[66,197,198],{"class":184},"/dev/null",[66,200,201],{"class":194}," |",[66,203,204],{"class":72}," sort",[66,206,207],{"class":76}," -n",[66,209,201],{"class":194},[66,211,212],{"class":72}," tail",[66,214,215],{"class":76}," -20\n",[82,217,218,224,230],{},[85,219,220,223],{},[44,221,222],{},"-x"," — оставаться в одной файловой системе (не заглядывать в другие смонтированные разделы).",[85,225,226,229],{},[44,227,228],{},"sort -n"," — числовая сортировка по размеру (по возрастанию).",[85,231,232,235],{},[44,233,234],{},"tail -20"," — взять последние 20 строк (самые большие).",[20,237,238],{},[24,239,240],{},"Результат будет выглядеть так:",[57,242,245],{"className":243,"code":244,"language":128},[126],"5242880    /var/lib/docker\n3145728    /usr/lib/jvm\n2097152    /var/log\n...\n",[44,246,244],{"__ignoreMap":62},[20,248,249,250,253],{},"Это показывает, что ",[44,251,252],{},"/var/lib/docker"," — главный кандидат на очистку.",[161,255,257],{"id":256},"способ-b-интерактивный-анализ-с-ncdu-рекомендуется","Способ B: Интерактивный анализ с ncdu (рекомендуется)",[20,259,260,261,264],{},"Установите ",[44,262,263],{},"ncdu"," — самый удобный инструмент для анализа дискового пространства.",[57,266,268],{"className":59,"code":267,"language":61,"meta":62,"style":62},"# Для Ubuntu/Debian\nsudo apt update && sudo apt install ncdu\n\n# Для CentOS/RHEL (EPEL репозиторий)\nsudo yum install epel-release && sudo yum install ncdu\n\n# Для Arch\nsudo pacman -S ncdu\n",[44,269,270,275,299,306,312,335,340,346],{"__ignoreMap":62},[66,271,272],{"class":68,"line":69},[66,273,274],{"class":174},"# Для Ubuntu/Debian\n",[66,276,277,279,282,285,289,291,293,296],{"class":68,"line":178},[66,278,181],{"class":72},[66,280,281],{"class":184}," apt",[66,283,284],{"class":184}," update",[66,286,288],{"class":287},"sVt8B"," && ",[66,290,181],{"class":72},[66,292,281],{"class":184},[66,294,295],{"class":184}," install",[66,297,298],{"class":184}," ncdu\n",[66,300,302],{"class":68,"line":301},3,[66,303,305],{"emptyLinePlaceholder":304},true,"\n",[66,307,309],{"class":68,"line":308},4,[66,310,311],{"class":174},"# Для CentOS/RHEL (EPEL репозиторий)\n",[66,313,315,317,320,322,325,327,329,331,333],{"class":68,"line":314},5,[66,316,181],{"class":72},[66,318,319],{"class":184}," yum",[66,321,295],{"class":184},[66,323,324],{"class":184}," epel-release",[66,326,288],{"class":287},[66,328,181],{"class":72},[66,330,319],{"class":184},[66,332,295],{"class":184},[66,334,298],{"class":184},[66,336,338],{"class":68,"line":337},6,[66,339,305],{"emptyLinePlaceholder":304},[66,341,343],{"class":68,"line":342},7,[66,344,345],{"class":174},"# Для Arch\n",[66,347,349,351,354,357],{"class":68,"line":348},8,[66,350,181],{"class":72},[66,352,353],{"class":184}," pacman",[66,355,356],{"class":76}," -S",[66,358,298],{"class":184},[20,360,361],{},"Запустите анализ нужного раздела:",[57,363,365],{"className":59,"code":364,"language":61,"meta":62,"style":62},"sudo ncdu /\n",[44,366,367],{"__ignoreMap":62},[66,368,369,371,374],{"class":68,"line":69},[66,370,181],{"class":72},[66,372,373],{"class":184}," ncdu",[66,375,376],{"class":184}," /\n",[20,378,379,380,383,384,387],{},"Вы получите ",[24,381,382],{},"интерактивный интерфейс"," (в текстовом режиме), где можно перемещаться по папкам, видеть их размер и удалять файлы прямо из программы (клавиша ",[44,385,386],{},"d","). Это значительно ускоряет процесс.",[389,390],"in-article-ad",{},[36,392,394],{"id":393},"️-шаг-3-очистка-что-можно-безопасно-удалить","🗑️ Шаг 3: Очистка — что можно безопасно удалить?",[20,396,397],{},"После анализа вы увидите «виновников». Вот основные категории для очистки.",[161,399,401],{"id":400},"_1-кэш-пакетного-менеджера-и-старые-версии-по","1. Кэш пакетного менеджера и старые версии ПО",[20,403,404],{},[24,405,406],{},"Для Debian/Ubuntu:",[57,408,410],{"className":59,"code":409,"language":61,"meta":62,"style":62},"# Удалить локальные кэшированные файлы пакетов (.deb)\nsudo apt-get clean\n\n# Удалить старые, ненужные зависимости\nsudo apt-get autoremove --purge\n\n# Показать старые ядра (не удаляйте текущее!))\ndpkg -l 'linux-image*' | grep '^ii'\n# Удаление конкретного старого ядра (пример)\nsudo apt-get purge linux-image-5.4.0-42-generic\n",[44,411,412,417,427,431,436,448,452,457,476,482],{"__ignoreMap":62},[66,413,414],{"class":68,"line":69},[66,415,416],{"class":174},"# Удалить локальные кэшированные файлы пакетов (.deb)\n",[66,418,419,421,424],{"class":68,"line":178},[66,420,181],{"class":72},[66,422,423],{"class":184}," apt-get",[66,425,426],{"class":184}," clean\n",[66,428,429],{"class":68,"line":301},[66,430,305],{"emptyLinePlaceholder":304},[66,432,433],{"class":68,"line":308},[66,434,435],{"class":174},"# Удалить старые, ненужные зависимости\n",[66,437,438,440,442,445],{"class":68,"line":314},[66,439,181],{"class":72},[66,441,423],{"class":184},[66,443,444],{"class":184}," autoremove",[66,446,447],{"class":76}," --purge\n",[66,449,450],{"class":68,"line":337},[66,451,305],{"emptyLinePlaceholder":304},[66,453,454],{"class":68,"line":342},[66,455,456],{"class":174},"# Показать старые ядра (не удаляйте текущее!))\n",[66,458,459,462,465,468,470,473],{"class":68,"line":348},[66,460,461],{"class":72},"dpkg",[66,463,464],{"class":76}," -l",[66,466,467],{"class":184}," 'linux-image*'",[66,469,201],{"class":194},[66,471,472],{"class":72}," grep",[66,474,475],{"class":184}," '^ii'\n",[66,477,479],{"class":68,"line":478},9,[66,480,481],{"class":174},"# Удаление конкретного старого ядра (пример)\n",[66,483,485,487,489,492],{"class":68,"line":484},10,[66,486,181],{"class":72},[66,488,423],{"class":184},[66,490,491],{"class":184}," purge",[66,493,494],{"class":184}," linux-image-5.4.0-42-generic\n",[20,496,497],{},[24,498,499],{},"Для RHEL/CentOS/Fedora:",[57,501,503],{"className":59,"code":502,"language":61,"meta":62,"style":62},"# Очистка кэша yum/dnf\nsudo yum clean all   # или sudo dnf clean all\n\n# Удаление старых ядер (осторожно!)\npackage-cleanup --oldkernels --count=2\n# Или вручную: rpm -qa kernel | sort -V | head -n -2 | xargs sudo yum remove -y\n",[44,504,505,510,525,529,534,545],{"__ignoreMap":62},[66,506,507],{"class":68,"line":69},[66,508,509],{"class":174},"# Очистка кэша yum/dnf\n",[66,511,512,514,516,519,522],{"class":68,"line":178},[66,513,181],{"class":72},[66,515,319],{"class":184},[66,517,518],{"class":184}," clean",[66,520,521],{"class":184}," all",[66,523,524],{"class":174},"   # или sudo dnf clean all\n",[66,526,527],{"class":68,"line":301},[66,528,305],{"emptyLinePlaceholder":304},[66,530,531],{"class":68,"line":308},[66,532,533],{"class":174},"# Удаление старых ядер (осторожно!)\n",[66,535,536,539,542],{"class":68,"line":314},[66,537,538],{"class":72},"package-cleanup",[66,540,541],{"class":76}," --oldkernels",[66,543,544],{"class":76}," --count=2\n",[66,546,547],{"class":68,"line":337},[66,548,549],{"class":174},"# Или вручную: rpm -qa kernel | sort -V | head -n -2 | xargs sudo yum remove -y\n",[20,551,552],{},[24,553,554],{},"Для Arch Linux:",[57,556,558],{"className":59,"code":557,"language":61,"meta":62,"style":62},"sudo pacman -Sc      # Очистка кэша установленных пакетов (старые версии)\nsudo pacman -Scc     # Очистить ВЕСЬ кэш (включая текущие) — не рекомендуется для производительности\n",[44,559,560,572],{"__ignoreMap":62},[66,561,562,564,566,569],{"class":68,"line":69},[66,563,181],{"class":72},[66,565,353],{"class":184},[66,567,568],{"class":76}," -Sc",[66,570,571],{"class":174},"      # Очистка кэша установленных пакетов (старые версии)\n",[66,573,574,576,578,581],{"class":68,"line":178},[66,575,181],{"class":72},[66,577,353],{"class":184},[66,579,580],{"class":76}," -Scc",[66,582,583],{"class":174},"     # Очистить ВЕСЬ кэш (включая текущие) — не рекомендуется для производительности\n",[161,585,587],{"id":586},"_2-логи-приложений-и-системы","2. Логи приложений и системы",[20,589,590,591,594],{},"Логи в ",[44,592,593],{},"/var/log"," могут бесконечно расти, особенно если есть ошибки в сервисах.",[57,596,598],{"className":59,"code":597,"language":61,"meta":62,"style":62},"# Просмотр размера логов\nsudo du -sh /var/log/*\n\n# Безопасное удаление старых сжатых логов (например, .gz файлов старше 30 дней)\nsudo find /var/log -name \"*.gz\" -type f -mtime +30 -delete\n# Удаление старых неархивированных логов (осторожно!)\nsudo find /var/log -type f -name \"*.log\" -mtime +7 -exec truncate -s 0 {} \\;\n",[44,599,600,605,620,624,629,660,665],{"__ignoreMap":62},[66,601,602],{"class":68,"line":69},[66,603,604],{"class":174},"# Просмотр размера логов\n",[66,606,607,609,611,614,617],{"class":68,"line":178},[66,608,181],{"class":72},[66,610,185],{"class":184},[66,612,613],{"class":76}," -sh",[66,615,616],{"class":184}," /var/log/",[66,618,619],{"class":76},"*\n",[66,621,622],{"class":68,"line":301},[66,623,305],{"emptyLinePlaceholder":304},[66,625,626],{"class":68,"line":308},[66,627,628],{"class":174},"# Безопасное удаление старых сжатых логов (например, .gz файлов старше 30 дней)\n",[66,630,631,633,636,639,642,645,648,651,654,657],{"class":68,"line":314},[66,632,181],{"class":72},[66,634,635],{"class":184}," find",[66,637,638],{"class":184}," /var/log",[66,640,641],{"class":76}," -name",[66,643,644],{"class":184}," \"*.gz\"",[66,646,647],{"class":76}," -type",[66,649,650],{"class":184}," f",[66,652,653],{"class":76}," -mtime",[66,655,656],{"class":184}," +30",[66,658,659],{"class":76}," -delete\n",[66,661,662],{"class":68,"line":337},[66,663,664],{"class":174},"# Удаление старых неархивированных логов (осторожно!)\n",[66,666,667,669,671,673,675,677,679,682,684,687,690,693,696,699,702],{"class":68,"line":342},[66,668,181],{"class":72},[66,670,635],{"class":184},[66,672,638],{"class":184},[66,674,647],{"class":76},[66,676,650],{"class":184},[66,678,641],{"class":76},[66,680,681],{"class":184}," \"*.log\"",[66,683,653],{"class":76},[66,685,686],{"class":184}," +7",[66,688,689],{"class":76}," -exec",[66,691,692],{"class":184}," truncate",[66,694,695],{"class":76}," -s",[66,697,698],{"class":76}," 0",[66,700,701],{"class":184}," {}",[66,703,704],{"class":76}," \\;\n",[138,706,707],{},[20,708,709,710,713,714,717,718,721,722,725,726,729,730,55],{},"💡 ",[24,711,712],{},"Совет:"," Лучше не удалять, а ",[24,715,716],{},"архивировать"," старые логи (",[44,719,720],{},"gzip",") или настроить ",[24,723,724],{},"logrotate"," (обычно уже настроен). Проверьте конфиг в ",[44,727,728],{},"/etc/logrotate.conf"," и ",[44,731,732],{},"/etc/logrotate.d/",[161,734,736],{"id":735},"_3-временные-файлы-и-кэш-пользователей","3. Временные файлы и кэш пользователей",[57,738,740],{"className":59,"code":739,"language":61,"meta":62,"style":62},"# Очистка /tmp (часто безопасно, но могут быть временно используемые файлы)\nsudo rm -rf /tmp/* /tmp/.* 2>/dev/null\n\n# Кэш текущего пользователя (браузеры, приложения)\nrm -rf ~/.cache/*\n",[44,741,742,747,773,777,782],{"__ignoreMap":62},[66,743,744],{"class":68,"line":69},[66,745,746],{"class":174},"# Очистка /tmp (часто безопасно, но могут быть временно используемые файлы)\n",[66,748,749,751,754,757,760,763,766,768,770],{"class":68,"line":178},[66,750,181],{"class":72},[66,752,753],{"class":184}," rm",[66,755,756],{"class":76}," -rf",[66,758,759],{"class":184}," /tmp/",[66,761,762],{"class":76},"*",[66,764,765],{"class":184}," /tmp/.",[66,767,762],{"class":76},[66,769,195],{"class":194},[66,771,772],{"class":184},"/dev/null\n",[66,774,775],{"class":68,"line":301},[66,776,305],{"emptyLinePlaceholder":304},[66,778,779],{"class":68,"line":308},[66,780,781],{"class":174},"# Кэш текущего пользователя (браузеры, приложения)\n",[66,783,784,787,789,792],{"class":68,"line":314},[66,785,786],{"class":72},"rm",[66,788,756],{"class":76},[66,790,791],{"class":184}," ~/.cache/",[66,793,619],{"class":76},[138,795,796],{},[20,797,142,798,800,801,729,804,807,808,55],{},[24,799,145],{}," Не удаляйте файлы в ",[44,802,803],{},"/tmp",[44,805,806],{},"~/.cache",", если не уверены, что они не используются текущими процессами. Лучше перезагрузить систему для очистки ",[44,809,803],{},[161,811,813,814,51,816],{"id":812},"_4-большие-файлы-найденные-через-ncdu-или-find","4. Большие файлы, найденные через ",[44,815,263],{},[44,817,818],{},"find",[20,820,821],{},"Найдите файлы больше 100 МБ:",[57,823,825],{"className":59,"code":824,"language":61,"meta":62,"style":62},"sudo find / -type f -size +100M -exec ls -lh {} \\; 2>/dev/null | awk '{ print $5, $9 }' | sort -rh\n",[44,826,827],{"__ignoreMap":62},[66,828,829,831,833,835,837,839,842,845,847,850,853,855,858,860,862,864,867,870,872,874],{"class":68,"line":69},[66,830,181],{"class":72},[66,832,635],{"class":184},[66,834,191],{"class":184},[66,836,647],{"class":76},[66,838,650],{"class":184},[66,840,841],{"class":76}," -size",[66,843,844],{"class":184}," +100M",[66,846,689],{"class":76},[66,848,849],{"class":184}," ls",[66,851,852],{"class":76}," -lh",[66,854,701],{"class":184},[66,856,857],{"class":76}," \\;",[66,859,195],{"class":194},[66,861,198],{"class":184},[66,863,201],{"class":194},[66,865,866],{"class":72}," awk",[66,868,869],{"class":184}," '{ print $5, $9 }'",[66,871,201],{"class":194},[66,873,204],{"class":72},[66,875,876],{"class":76}," -rh\n",[20,878,879],{},"Проверьте, можно ли их удалить или архивировать. Частые кандидаты:",[82,881,882,892,901,910],{},[85,883,884,885,888,889,136],{},"Дампы баз данных (",[44,886,887],{},"*.sql",", ",[44,890,891],{},"*.sqlite",[85,893,894,895,888,898,136],{},"Изображения Docker (",[44,896,897],{},"/var/lib/docker/overlay2",[44,899,900],{},"/var/lib/docker/containers",[85,902,903,904,888,907,136],{},"Файлы резервных копий (",[44,905,906],{},"*.bak",[44,908,909],{},"*.backup",[85,911,912,913,888,916,136],{},"Изолированные диски виртуальных машин (",[44,914,915],{},"*.qcow2",[44,917,918],{},"*.vmdk",[36,920,922],{"id":921},"️-шаг-4-специфичные-случаи","🛠️ Шаг 4: Специфичные случаи",[161,924,926],{"id":925},"docker-podman","Docker / Podman",[20,928,929],{},"Контейнеры и образы могут занимать гигантские объемы.",[57,931,933],{"className":59,"code":932,"language":61,"meta":62,"style":62},"# Просмотр占用-го места\ndocker system df\n# Очистка неиспользуемых данных (образы, контейнеры, сети, тома)\ndocker system prune -a --volumes\n# Более безопасно: только остановленные контейнеры и dangling образы\ndocker container prune\ndocker image prune\n",[44,934,935,940,951,956,971,976,986],{"__ignoreMap":62},[66,936,937],{"class":68,"line":69},[66,938,939],{"class":174},"# Просмотр占用-го места\n",[66,941,942,945,948],{"class":68,"line":178},[66,943,944],{"class":72},"docker",[66,946,947],{"class":184}," system",[66,949,950],{"class":184}," df\n",[66,952,953],{"class":68,"line":301},[66,954,955],{"class":174},"# Очистка неиспользуемых данных (образы, контейнеры, сети, тома)\n",[66,957,958,960,962,965,968],{"class":68,"line":308},[66,959,944],{"class":72},[66,961,947],{"class":184},[66,963,964],{"class":184}," prune",[66,966,967],{"class":76}," -a",[66,969,970],{"class":76}," --volumes\n",[66,972,973],{"class":68,"line":314},[66,974,975],{"class":174},"# Более безопасно: только остановленные контейнеры и dangling образы\n",[66,977,978,980,983],{"class":68,"line":337},[66,979,944],{"class":72},[66,981,982],{"class":184}," container",[66,984,985],{"class":184}," prune\n",[66,987,988,990,993],{"class":68,"line":342},[66,989,944],{"class":72},[66,991,992],{"class":184}," image",[66,994,985],{"class":184},[161,996,998],{"id":997},"базы-данных-mysqlpostgresql","Базы данных (MySQL/PostgreSQL)",[20,1000,1001],{},"Удаление старых логов бинарных журналов (binlogs) или дампов.",[82,1003,1004,1014],{},[85,1005,1006,1009,1010,1013],{},[24,1007,1008],{},"MySQL:"," ",[44,1011,1012],{},"PURGE BINARY LOGS BEFORE '2026-01-01 00:00:00';"," (выполнить в клиенте mysql).",[85,1015,1016,1019,1020,1023,1024,46,1027,55],{},[24,1017,1018],{},"PostgreSQL:"," Настройка ",[44,1021,1022],{},"archive_cleanup_command"," или удаление старых файлов в ",[44,1025,1026],{},"pg_wal",[44,1028,1029],{},"pg_xlog",[161,1031,1033],{"id":1032},"старые-ядра-linux","Старые ядра Linux",[20,1035,1036,1037,1040],{},"Оставьте ",[24,1038,1039],{},"только текущее загруженное ядро"," и, возможно, одно предыдущее для резерва.",[57,1042,1044],{"className":59,"code":1043,"language":61,"meta":62,"style":62},"# Для Ubuntu/Debian (узнайте текущее ядро)\nuname -r\n# Удалите ВСЕ остальные через apt (смотрите список из п.3.1)\n",[44,1045,1046,1051,1059],{"__ignoreMap":62},[66,1047,1048],{"class":68,"line":69},[66,1049,1050],{"class":174},"# Для Ubuntu/Debian (узнайте текущее ядро)\n",[66,1052,1053,1056],{"class":68,"line":178},[66,1054,1055],{"class":72},"uname",[66,1057,1058],{"class":76}," -r\n",[66,1060,1061],{"class":68,"line":301},[66,1062,1063],{"class":174},"# Удалите ВСЕ остальные через apt (смотрите список из п.3.1)\n",[36,1065,1067],{"id":1066},"шаг-5-что-делать-если-место-не-освобождается","🚨 Шаг 5: Что делать, если место не освобождается?",[20,1069,1070,1071,1073],{},"Иногда ",[44,1072,73],{}," показывает свободное место, а система всё равно пишет «No space left». Это может быть из-за:",[1075,1076,1077,1088,1105],"ol",{},[85,1078,1079,1009,1082,1084,1085,136],{},[24,1080,1081],{},"Заполнения inodes:",[44,1083,152],{},". Решение — удалить миллионы мелких файлов (например, старые сессии в ",[44,1086,1087],{},"/var/lib/php/sessions",[85,1089,1090,1093,1094,1096,1097,1100,1101,1104],{},[24,1091,1092],{},"Резервирование места root:"," В ext4 по умолчанию 5% резервируется для root-пользователя. Для диска 1 ТБ это 50 ГБ, которые обычный пользователь не может занять, но ",[44,1095,73],{}," покажет их как использованные. Проверьте ",[44,1098,1099],{},"tune2fs -l /dev/sda1 | grep 'Reserved block count'",". Уменьшить можно: ",[44,1102,1103],{},"sudo tune2fs -m 1 /dev/sda1"," (оставить 1%).",[85,1106,1107,1110,1111,1114],{},[24,1108,1109],{},"Занятые удалённые (deleted) файлы:"," Файл удалён, но процесс ещё держит его дескриптор. Найти: ",[44,1112,1113],{},"lsof | grep '(deleted)'",". Решение — перезапустить процесс или завершить его.",[36,1116,1118],{"id":1117},"шаг-6-профилактика-и-мониторинг","📈 Шаг 6: Профилактика и мониторинг",[20,1120,1121],{},"Чтобы проблема не повторялась:",[1075,1123,1124,1331,1344,1350,1363],{},[85,1125,1126,1129,1130,1133,1134,1137,1138],{},[24,1127,1128],{},"Настройте мониторинг:"," Добавьте в ",[44,1131,1132],{},"cron"," (например, ",[44,1135,1136],{},"/etc/cron.weekly/disk-check",") скрипт:\n",[57,1139,1141],{"className":59,"code":1140,"language":61,"meta":62,"style":62},"#!/bin/bash\nTHRESHOLD=90\ndf -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 \" \" $6 }' | while read output;\ndo\n  usep=$(echo $output | awk '{ print $1 }' | cut -d'%' -f1)\n  partition=$(echo $output | awk '{ print $2 }')\n  if [ $usep -ge $THRESHOLD ]; then\n    echo \"Внимание: раздел $partition заполнен на $usep% на $(hostname)!\" | mail -s \"Диск почти полный\" admin@example.com\n  fi\ndone\n",[44,1142,1143,1148,1159,1197,1202,1243,1265,1282,1321,1326],{"__ignoreMap":62},[66,1144,1145],{"class":68,"line":69},[66,1146,1147],{"class":174},"#!/bin/bash\n",[66,1149,1150,1153,1156],{"class":68,"line":178},[66,1151,1152],{"class":287},"THRESHOLD",[66,1154,1155],{"class":194},"=",[66,1157,1158],{"class":184},"90\n",[66,1160,1161,1163,1166,1168,1170,1173,1176,1178,1180,1183,1185,1188,1191,1194],{"class":68,"line":301},[66,1162,73],{"class":72},[66,1164,1165],{"class":76}," -H",[66,1167,201],{"class":194},[66,1169,472],{"class":72},[66,1171,1172],{"class":76}," -vE",[66,1174,1175],{"class":184}," '^Filesystem|tmpfs|cdrom'",[66,1177,201],{"class":194},[66,1179,866],{"class":72},[66,1181,1182],{"class":184}," '{ print $5 \" \" $6 }'",[66,1184,201],{"class":194},[66,1186,1187],{"class":194}," while",[66,1189,1190],{"class":76}," read",[66,1192,1193],{"class":184}," output",[66,1195,1196],{"class":287},";\n",[66,1198,1199],{"class":68,"line":308},[66,1200,1201],{"class":194},"do\n",[66,1203,1204,1207,1209,1212,1215,1218,1221,1223,1226,1228,1231,1234,1237,1240],{"class":68,"line":314},[66,1205,1206],{"class":287},"  usep",[66,1208,1155],{"class":194},[66,1210,1211],{"class":287},"$(",[66,1213,1214],{"class":76},"echo",[66,1216,1217],{"class":287}," $output ",[66,1219,1220],{"class":194},"|",[66,1222,866],{"class":72},[66,1224,1225],{"class":184}," '{ print $1 }'",[66,1227,201],{"class":194},[66,1229,1230],{"class":72}," cut",[66,1232,1233],{"class":76}," -d",[66,1235,1236],{"class":184},"'%'",[66,1238,1239],{"class":76}," -f1",[66,1241,1242],{"class":287},")\n",[66,1244,1245,1248,1250,1252,1254,1256,1258,1260,1263],{"class":68,"line":337},[66,1246,1247],{"class":287},"  partition",[66,1249,1155],{"class":194},[66,1251,1211],{"class":287},[66,1253,1214],{"class":76},[66,1255,1217],{"class":287},[66,1257,1220],{"class":194},[66,1259,866],{"class":72},[66,1261,1262],{"class":184}," '{ print $2 }'",[66,1264,1242],{"class":287},[66,1266,1267,1270,1273,1276,1279],{"class":68,"line":342},[66,1268,1269],{"class":194},"  if",[66,1271,1272],{"class":287}," [ $usep ",[66,1274,1275],{"class":194},"-ge",[66,1277,1278],{"class":287}," $THRESHOLD ]; ",[66,1280,1281],{"class":194},"then\n",[66,1283,1284,1287,1290,1293,1296,1299,1302,1305,1308,1310,1313,1315,1318],{"class":68,"line":348},[66,1285,1286],{"class":76},"    echo",[66,1288,1289],{"class":184}," \"Внимание: раздел ",[66,1291,1292],{"class":287},"$partition",[66,1294,1295],{"class":184}," заполнен на ",[66,1297,1298],{"class":287},"$usep",[66,1300,1301],{"class":184},"% на $(",[66,1303,1304],{"class":72},"hostname",[66,1306,1307],{"class":184},")!\"",[66,1309,201],{"class":194},[66,1311,1312],{"class":72}," mail",[66,1314,695],{"class":76},[66,1316,1317],{"class":184}," \"Диск почти полный\"",[66,1319,1320],{"class":184}," admin@example.com\n",[66,1322,1323],{"class":68,"line":478},[66,1324,1325],{"class":194},"  fi\n",[66,1327,1328],{"class":68,"line":484},[66,1329,1330],{"class":194},"done\n",[85,1332,1333,1336,1337,1340,1341,136],{},[24,1334,1335],{},"Настройте logrotate:"," Убедитесь, что он активен и сжимает логи (",[44,1338,1339],{},"compress","), удаляет старые (",[44,1342,1343],{},"rotate 4",[85,1345,1346,1349],{},[24,1347,1348],{},"Ограничьте размер логов приложений:"," Для nginx, apache, mysql настройте ротацию в их конфигах.",[85,1351,1352,1355,1356,51,1359,1362],{},[24,1353,1354],{},"Регулярно чистите кэш:"," Добавьте ",[44,1357,1358],{},"apt-get clean",[44,1360,1361],{},"yum clean all"," в еженедельный cron.",[85,1364,1365,1370,1371,888,1373,888,1375,55],{},[24,1366,1367,1368],{},"Используйте ",[44,1369,263],{}," для периодической ручной проверки «горячих» точек: ",[44,1372,50],{},[44,1374,54],{},[44,1376,1377],{},"/usr",[36,1379,1381],{"id":1380},"часто-задаваемые-вопросы","❓ Часто задаваемые вопросы",[20,1383,1384],{},[24,1385,1386],{},"Q: Можно ли просто удалить всё в /tmp?",[138,1388,1389],{},[20,1390,1391,1392,1395],{},"A: В большинстве случаев да, особенно после перезагрузки. Но если система работает давно без перезагрузки, некоторые приложения могут хранить там временные файлы. Лучше удалять только старые (",[44,1393,1394],{},"find /tmp -type f -mtime +7 -delete",") или перезагрузиться.",[20,1397,1398],{},[24,1399,1400,1401,1403],{},"Q: После очистки ",[44,1402,73],{}," показывает свободное место, но приложения всё равно падают с ошибкой «no space».",[138,1405,1406],{},[20,1407,1408,1409,1411,1412,1415,1416,1419,1420,136],{},"A: Проверьте inodes (",[44,1410,152],{},"). Также проверьте, не занято ли место под ",[24,1413,1414],{},"резерв root"," (см. Шаг 5). Или есть ли ",[24,1417,1418],{},"занятые удалённые файлы"," (",[44,1421,1422],{},"lsof | grep deleted",[20,1424,1425],{},[24,1426,1427],{},"Q: Безопасно ли удалять файлы в /var/lib/docker?",[138,1429,1430],{},[20,1431,1432,1433,1436,1437,1440,1441,1443],{},"A: ",[24,1434,1435],{},"Нет, напрямую — никогда!"," Используйте только команды Docker: ",[44,1438,1439],{},"docker system prune -a",". Прямое удаление файлов в ",[44,1442,252],{}," приведёт к неработоспособности контейнеров и повреждению данных.",[20,1445,1446],{},[24,1447,1448],{},"Q: Как автоматически удалять старые файлы в какой-то папке?",[138,1450,1451],{},[20,1452,1453,1454,1456,1457,1459,1460,1463,1464,1467,1468,1471,1472,55],{},"A: Используйте ",[44,1455,818],{}," с ",[44,1458,1132],{},". Пример: удалить файлы в ",[44,1461,1462],{},"/backup"," старше 30 дней: ",[44,1465,1466],{},"find /backup -type f -mtime +30 -delete",". Добавьте в crontab (",[44,1469,1470],{},"crontab -e","): ",[44,1473,1474],{},"0 2 * * * /usr/bin/find /backup -type f -mtime +30 -delete",[20,1476,1477],{},[24,1478,1479,1480,1483,1484,1486],{},"Q: Почему ",[44,1481,1482],{},"du"," показывает меньше места, чем ",[44,1485,73],{},"?",[138,1488,1489,1495],{},[20,1490,1491,1492,1494],{},"A: Потому что ",[44,1493,1482],{}," не учитывает:",[82,1496,1497,1500,1503],{},[85,1498,1499],{},"Файлы, удалённые, но ещё открытые процессами.",[85,1501,1502],{},"Резервирование места для root (в ext4).",[85,1504,1505,1506,1508],{},"Скрытые системные файлы (если не запущен с ",[44,1507,181],{}," и есть доступные только root каталоги).",[1510,1511],"hr",{},[20,1513,1514,1517,1518,729,1521,55],{},[24,1515,1516],{},"Выполнив этот гайд, вы не только оперативно решите проблему «диск полный», но и получите инструменты для её предотвращения в будущем."," Ключевой принцип: ",[24,1519,1520],{},"регулярный мониторинг",[24,1522,1523],{},"понимание, что занимает место на вашем сервере",[1525,1526,1527],"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 .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}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":62,"searchDepth":178,"depth":178,"links":1529},[1530,1531,1535,1542,1547,1548,1549],{"id":38,"depth":178,"text":39},{"id":155,"depth":178,"text":156,"children":1532},[1533,1534],{"id":163,"depth":301,"text":164},{"id":256,"depth":301,"text":257},{"id":393,"depth":178,"text":394,"children":1536},[1537,1538,1539,1540],{"id":400,"depth":301,"text":401},{"id":586,"depth":301,"text":587},{"id":735,"depth":301,"text":736},{"id":812,"depth":301,"text":1541},"4. Большие файлы, найденные через ncdu или find",{"id":921,"depth":178,"text":922,"children":1543},[1544,1545,1546],{"id":925,"depth":301,"text":926},{"id":997,"depth":301,"text":998},{"id":1032,"depth":301,"text":1033},{"id":1066,"depth":178,"text":1067},{"id":1117,"depth":178,"text":1118},{"id":1380,"depth":178,"text":1381},null,"2026-02-14 12:10:01","Диск переполнен в Linux? Наша пошаговая инструкция поможет найти и удалить большие файлы, очистить кэш и освободить место за 10-15 минут. Проверенные команды для Ubuntu, CentOS и других дистрибутивов.","easy",false,"10-15 мин","md",[1558,1561,1564,1567],{"question":1559,"answer":1560},"Почему в Linux диск может внезапно заполниться?","Чаще всего из-за роста логов приложений, кэша пакетного менеджера (apt/yum), старых версий ядра, временных файлов или утечек данных в приложениях. Некорректно работающий процесс может бесконечно писать в один файл.",{"question":1562,"answer":1563},"Какая команда показывает, какие папки занимают больше всего места?","Используйте `du -sh /* 2>/dev/null | sort -rh | head -20` для анализа корневых каталогов. Для интерактивного просмотра установите `ncdu` — это самый удобный инструмент.",{"question":1565,"answer":1566},"Безопасно ли удалять файлы в /var/cache/apt/archives?","Да, это безопасно. Эти файлы — уже установленные .deb пакеты. Очистка освободит место, но новые установки потребуют загрузки пакетов заново. Команда: `sudo apt-get clean`.",{"question":1568,"answer":1569},"Как предотвратить повторное заполнение диска?","Настройте ротацию логов (logrotate), регулярно очищайте кэш пакетов, мониторьте рост каталогов через cron и alert-скрипты. Установите `ncdu` для периодической ручной проверки.",[1571,1574,1577,1580,1583],{"name":1572,"text":1573},"Определите, какой раздел заполнен","Выполните `df -h`. Убедитесь, что проблема именно в корневом разделе (/), а не в отдельном монтировании (например, /home). Обратите внимание на процент использования в колонке Use%.",{"name":1575,"text":1576},"Найдите крупнейшие каталоги и файлы","Используйте `sudo du -x / 2>/dev/null | sort -n | tail -20` для поиска 20 самых больших папок в корне. Для интерактивного анализа установите `ncdu /` и исследуйте визуально.",{"name":1578,"text":1579},"Очистите кэш пакетного менеджера и старые данные","Для Debian/Ubuntu: `sudo apt-get autoremove --purge && sudo apt-get clean`. Для RHEL/CentOS: `sudo yum autoremove && sudo yum clean all`. Удалите старые ядра (кроме текущего) через `dpkg -l 'linux-image*'` или `rpm -qa kernel`.",{"name":1581,"text":1582},"Удалите или архивируйте большие файлы","После анализа через ncdu переместите старые логи,备份ы или временные файлы в архив (`tar -czf`) или удалите (`rm -f`). Особое внимание — /var/log, /tmp, ~/.cache, /home/*/Downloads.",{"name":1584,"text":1585},"Настройте мониторинг и профилактику","Добавьте в cron еженедельную проверку: `df -h | grep -E '(/$|/home)'` и отправку отчета. Настройте logrotate для сжатия старых логов. Рассмотрите использование `systemd-tmpfiles` для очистки /tmp.","PT15M",[1588,1589,1590,1591,1592,1593,1594,1595,1596],"диск полный linux","освободить место на диске linux","df du команды","очистка кэша linux","no space left on device linux","удалить старые ядра linux","очистка apt кэша","большие файлы на сервере","мониторинг дискового пространства","ru_RU",{},"/errors/linux/linux-disk-full","linux",[1602,1603,1604],"/guides/linux/disk-usage-monitoring","/errors/linux/read-only-file-system","/guides/linux/log-rotation","Ошибки Linux",{"title":5,"description":1552},"high","errors/linux/linux-disk-full","Полное руководство по диагностике и решению проблемы заполненного диска в Linux. Вы научитесь использовать команды df, du, ncdu для анализа, безопасно удалять кэш, старые пакеты и большие файлы, а также настроить мониторинг.",[1611,1612,61,1613,1614,1615],"ошибки linux","disk space","sysadmin","ubuntu","centos","guide","96ABboZ0IwlW2zp3xCX6AZaywzXmD_TMrLXeksR6lc0",{"data":1619,"body":1620},{},{"type":1621,"children":1622},"root",[1623],{"type":1624,"tag":20,"props":1625,"children":1626},"element",{},[1627],{"type":128,"value":1560},{"data":1629,"body":1630},{},{"type":1621,"children":1631},[1632],{"type":1624,"tag":20,"props":1633,"children":1634},{},[1635,1636,1642,1644,1649],{"type":128,"value":1367},{"type":1624,"tag":44,"props":1637,"children":1639},{"className":1638},[],[1640],{"type":128,"value":1641},"du -sh /* 2>/dev/null | sort -rh | head -20",{"type":128,"value":1643}," для анализа корневых каталогов. Для интерактивного просмотра установите ",{"type":1624,"tag":44,"props":1645,"children":1647},{"className":1646},[],[1648],{"type":128,"value":263},{"type":128,"value":1650}," — это самый удобный инструмент.",{"data":1652,"body":1653},{},{"type":1621,"children":1654},[1655],{"type":1624,"tag":20,"props":1656,"children":1657},{},[1658,1660,1666],{"type":128,"value":1659},"Да, это безопасно. Эти файлы — уже установленные .deb пакеты. Очистка освободит место, но новые установки потребуют загрузки пакетов заново. Команда: ",{"type":1624,"tag":44,"props":1661,"children":1663},{"className":1662},[],[1664],{"type":128,"value":1665},"sudo apt-get clean",{"type":128,"value":55},{"data":1668,"body":1669},{},{"type":1621,"children":1670},[1671],{"type":1624,"tag":20,"props":1672,"children":1673},{},[1674,1676,1681],{"type":128,"value":1675},"Настройте ротацию логов (logrotate), регулярно очищайте кэш пакетов, мониторьте рост каталогов через cron и alert-скрипты. Установите ",{"type":1624,"tag":44,"props":1677,"children":1679},{"className":1678},[],[1680],{"type":128,"value":263},{"type":128,"value":1682}," для периодической ручной проверки.",{"data":1684,"body":1685},{},{"type":1621,"children":1686},[1687],{"type":1624,"tag":20,"props":1688,"children":1689},{},[1690,1692,1698],{"type":128,"value":1691},"Выполните ",{"type":1624,"tag":44,"props":1693,"children":1695},{"className":1694},[],[1696],{"type":128,"value":1697},"df -h",{"type":128,"value":1699},". Убедитесь, что проблема именно в корневом разделе (/), а не в отдельном монтировании (например, /home). Обратите внимание на процент использования в колонке Use%.",{"data":1701,"body":1702},{},{"type":1621,"children":1703},[1704],{"type":1624,"tag":20,"props":1705,"children":1706},{},[1707,1708,1714,1716,1722],{"type":128,"value":1367},{"type":1624,"tag":44,"props":1709,"children":1711},{"className":1710},[],[1712],{"type":128,"value":1713},"sudo du -x / 2>/dev/null | sort -n | tail -20",{"type":128,"value":1715}," для поиска 20 самых больших папок в корне. Для интерактивного анализа установите ",{"type":1624,"tag":44,"props":1717,"children":1719},{"className":1718},[],[1720],{"type":128,"value":1721},"ncdu /",{"type":128,"value":1723}," и исследуйте визуально.",{"data":1725,"body":1726},{},{"type":1621,"children":1727},[1728],{"type":1624,"tag":20,"props":1729,"children":1730},{},[1731,1733,1739,1741,1747,1749,1755,1756,1762],{"type":128,"value":1732},"Для Debian/Ubuntu: ",{"type":1624,"tag":44,"props":1734,"children":1736},{"className":1735},[],[1737],{"type":128,"value":1738},"sudo apt-get autoremove --purge && sudo apt-get clean",{"type":128,"value":1740},". Для RHEL/CentOS: ",{"type":1624,"tag":44,"props":1742,"children":1744},{"className":1743},[],[1745],{"type":128,"value":1746},"sudo yum autoremove && sudo yum clean all",{"type":128,"value":1748},". Удалите старые ядра (кроме текущего) через ",{"type":1624,"tag":44,"props":1750,"children":1752},{"className":1751},[],[1753],{"type":128,"value":1754},"dpkg -l 'linux-image*'",{"type":128,"value":51},{"type":1624,"tag":44,"props":1757,"children":1759},{"className":1758},[],[1760],{"type":128,"value":1761},"rpm -qa kernel",{"type":128,"value":55},{"data":1764,"body":1765},{},{"type":1621,"children":1766},[1767],{"type":1624,"tag":20,"props":1768,"children":1769},{},[1770,1772,1778,1780,1786],{"type":128,"value":1771},"После анализа через ncdu переместите старые логи,备份ы или временные файлы в архив (",{"type":1624,"tag":44,"props":1773,"children":1775},{"className":1774},[],[1776],{"type":128,"value":1777},"tar -czf",{"type":128,"value":1779},") или удалите (",{"type":1624,"tag":44,"props":1781,"children":1783},{"className":1782},[],[1784],{"type":128,"value":1785},"rm -f",{"type":128,"value":1787},"). Особое внимание — /var/log, /tmp, ~/.cache, /home/*/Downloads.",{"data":1789,"body":1790},{},{"type":1621,"children":1791},[1792],{"type":1624,"tag":20,"props":1793,"children":1794},{},[1795,1797,1803,1805,1811],{"type":128,"value":1796},"Добавьте в cron еженедельную проверку: ",{"type":1624,"tag":44,"props":1798,"children":1800},{"className":1799},[],[1801],{"type":128,"value":1802},"df -h | grep -E '(/$|/home)'",{"type":128,"value":1804}," и отправку отчета. Настройте logrotate для сжатия старых логов. Рассмотрите использование ",{"type":1624,"tag":44,"props":1806,"children":1808},{"className":1807},[],[1809],{"type":128,"value":1810},"systemd-tmpfiles",{"type":128,"value":1812}," для очистки /tmp.",[1814,3017,3950],{"id":1815,"title":1816,"appliesTo":1817,"author":11,"body":1822,"canonical":1550,"code":1550,"createdAt":2959,"description":2960,"difficulty":1553,"draft":1554,"estimatedTime":2961,"extension":1556,"faq":2962,"howToSteps":2975,"howToTotalTime":2991,"image":1550,"keywords":2992,"locale":1597,"meta":3003,"navigation":304,"path":1602,"platform":1600,"related":3004,"section":3008,"seo":3009,"severity":3010,"stem":3011,"summary":3012,"tags":3013,"twitterCreator":1550,"twitterSite":1550,"type":1616,"updatedAt":2959,"__hash__":3016},"content_ru/guides/linux/disk-usage-monitoring.md","Мониторинг дискового пространства в Linux: полное руководство",[1818,1819,1820,1821],"Ubuntu 20.04+","Debian 10+","CentOS 8+","Any Linux with bash",{"type":13,"value":1823,"toc":2932},[1824,1828,1831,1842,1846,1849,1877,1885,1889,1895,1907,1917,1924,1928,1934,1939,1963,1980,1986,1997,2002,2016,2035,2039,2074,2099,2103,2139,2145,2155,2162,2169,2173,2246,2250,2262,2268,2276,2310,2313,2315,2321,2324,2328,2343,2346,2522,2527,2562,2565,2582,2588,2603,2606,2612,2615,2625,2629,2632,2692,2695,2699,2751,2754,2758,2764,2786,2795,2799,2816,2835,2838,2845,2863,2867,2874,2896,2902,2924,2926,2929],[36,1825,1827],{"id":1826},"введение-зачем-это-нужно","Введение / Зачем это нужно",[20,1829,1830],{},"Здравствуйте! Если вы администрируете Linux-сервер или даже просто работаете на рабочей станции, вы наверняка сталкивались с ситуацией, когда диск внезапно заполняется. Это приводит к остановке служб, ошибкам записи и даже к полной неработоспособности системы. Регулярный мониторинг дискового пространства — это не просто хорошая практика, а необходимость для стабильности системы.",[20,1832,1833,1834,888,1836,1838,1839,1841],{},"В этом гайде вы узнаете, как с помощью встроенных утилит (",[44,1835,73],{},[44,1837,1482],{},") и удобного стороннего инструмента (",[44,1840,263],{},") быстро оценить ситуацию с дисковым пространством, найти \"пожирателей\" места и настроить автоматическое оповещение о критическом заполнении. Все инструкции работают на большинстве современных дистрибутивов.",[36,1843,1845],{"id":1844},"требования-подготовка","Требования / Подготовка",[20,1847,1848],{},"Перед началом убедитесь, что у вас есть:",[1075,1850,1851,1857,1863],{},[85,1852,1853,1856],{},[24,1854,1855],{},"Доступ к терминалу"," — локально или через SSH.",[85,1858,1859,1862],{},[24,1860,1861],{},"Базовые навыки работы в командной строке"," — умение вводить команды и читать вывод.",[85,1864,1865,1868,1869,888,1871,1873,1874,1876],{},[24,1866,1867],{},"Права суперпользователя (sudo)"," — для анализа системных директорий (",[44,1870,50],{},[44,1872,1377],{},") и установки пакетов. Некоторые команды ",[44,1875,1482],{}," без sudo могут выдать ошибку \"Permission denied\".",[138,1878,1879],{},[20,1880,709,1881,1884],{},[24,1882,1883],{},"Совет",": Если вы работаете на сервере, всегда тестируйте команды на тестовой директории перед запуском в системных папках.",[36,1886,1888],{"id":1887},"пошаговая-инструкция","Пошаговая инструкция",[161,1890,1892,1893],{"id":1891},"шаг-1-проверка-общего-использования-диска-командой-df","Шаг 1: Проверка общего использования диска командой ",[44,1894,73],{},[20,1896,1897,1898,1902,1903,1906],{},"Команда ",[24,1899,1900],{},[44,1901,73],{}," (disk free) — ваш первый инструмент. Она показывает свободное и занятое место на всех ",[24,1904,1905],{},"смонтированных"," файловых системах.",[57,1908,1909],{"className":59,"code":60,"language":61,"meta":62,"style":62},[44,1910,1911],{"__ignoreMap":62},[66,1912,1913,1915],{"class":68,"line":69},[66,1914,73],{"class":72},[66,1916,77],{"class":76},[20,1918,1919,1920,1923],{},"Флаг ",[44,1921,1922],{},"-h"," (human-readable) переводит размеры в килобайты, мегабайты или гигабайты для удобства чтения.",[20,1925,1926],{},[24,1927,122],{},[57,1929,1932],{"className":1930,"code":1931,"language":128},[126],"Filesystem      Size  Used Avail Use% Mounted on\n/dev/sda1        50G   45G  3.5G  93% /\ntmpfs           1.9G  1.2M  1.9G   1% /dev\n/dev/sdb1       200G   30G  160G  16% /home\n",[44,1933,1931],{"__ignoreMap":62},[20,1935,1936],{},[24,1937,1938],{},"Что смотреть:",[82,1940,1941,1948],{},[85,1942,1943,1947],{},[24,1944,1945],{},[44,1946,107],{}," — процент использования. Значения выше 80% — повод для беспокойства.",[85,1949,1950,1954,1955,1957,1958,888,1960,1962],{},[24,1951,1952],{},[44,1953,116],{}," — точка монтирования. Обращайте внимание на корневую (",[44,1956,46],{},") и служебные (",[44,1959,50],{},[44,1961,803],{},") файловые системы.",[138,1964,1965],{},[20,1966,142,1967,1970,1971,1973,1974,1977,1978,55],{},[24,1968,1969],{},"Важно",": ",[44,1972,73],{}," показывает использование ",[24,1975,1976],{},"всего"," раздела, включая системные файлы, кэши и т.д. Чтобы понять, что именно занимает место внутри раздела, переходите к ",[44,1979,1482],{},[161,1981,1983,1984],{"id":1982},"шаг-2-анализ-использования-конкретных-директорий-с-помощью-du","Шаг 2: Анализ использования конкретных директорий с помощью ",[44,1985,1482],{},[20,1987,1897,1988,1992,1993,1996],{},[24,1989,1990],{},[44,1991,1482],{}," (disk usage) оценивает размер ",[24,1994,1995],{},"файлов и директорий"," в текущей или указанной файловой системе.",[1998,1999,2001],"h4",{"id":2000},"базовый-пример","Базовый пример:",[57,2003,2005],{"className":59,"code":2004,"language":61,"meta":62,"style":62},"du -sh /var\n",[44,2006,2007],{"__ignoreMap":62},[66,2008,2009,2011,2013],{"class":68,"line":69},[66,2010,1482],{"class":72},[66,2012,613],{"class":76},[66,2014,2015],{"class":184}," /var\n",[82,2017,2018,2024,2029],{},[85,2019,2020,2023],{},[44,2021,2022],{},"-s"," (summarize) — показать только итоговый размер, а не для каждого подкаталога.",[85,2025,2026,2028],{},[44,2027,1922],{}," — человекочитаемый формат.",[85,2030,2031,2032],{},"Результат: ",[44,2033,2034],{},"4.2G    /var",[1998,2036,2038],{"id":2037},"поиск-самых-больших-папок-в-текущей-директории","Поиск самых больших папок в текущей директории:",[57,2040,2042],{"className":59,"code":2041,"language":61,"meta":62,"style":62},"du -sh * 2>/dev/null | sort -rh | head -n 10\n",[44,2043,2044],{"__ignoreMap":62},[66,2045,2046,2048,2050,2053,2055,2057,2059,2061,2064,2066,2069,2071],{"class":68,"line":69},[66,2047,1482],{"class":72},[66,2049,613],{"class":76},[66,2051,2052],{"class":76}," *",[66,2054,195],{"class":194},[66,2056,198],{"class":184},[66,2058,201],{"class":194},[66,2060,204],{"class":72},[66,2062,2063],{"class":76}," -rh",[66,2065,201],{"class":194},[66,2067,2068],{"class":72}," head",[66,2070,207],{"class":76},[66,2072,2073],{"class":76}," 10\n",[82,2075,2076,2081,2087,2093],{},[85,2077,2078,2080],{},[44,2079,762],{}," — все файлы/папки в текущей директории.",[85,2082,2083,2086],{},[44,2084,2085],{},"2>/dev/null"," — подавить ошибки \"Permission denied\".",[85,2088,2089,2092],{},[44,2090,2091],{},"sort -rh"," — сортировка по убыванию числового значения (с учетом суффиксов G, M).",[85,2094,2095,2098],{},[44,2096,2097],{},"head -n 10"," — показать топ-10.",[1998,2100,2102],{"id":2101},"рекурсивный-анализ-с-глубиной","Рекурсивный анализ с глубиной:",[57,2104,2106],{"className":59,"code":2105,"language":61,"meta":62,"style":62},"du -h --max-depth=2 / 2>/dev/null | sort -rh | head -n 20\n",[44,2107,2108],{"__ignoreMap":62},[66,2109,2110,2112,2115,2118,2120,2122,2124,2126,2128,2130,2132,2134,2136],{"class":68,"line":69},[66,2111,1482],{"class":72},[66,2113,2114],{"class":76}," -h",[66,2116,2117],{"class":76}," --max-depth=2",[66,2119,191],{"class":184},[66,2121,195],{"class":194},[66,2123,198],{"class":184},[66,2125,201],{"class":194},[66,2127,204],{"class":72},[66,2129,2063],{"class":76},[66,2131,201],{"class":194},[66,2133,2068],{"class":72},[66,2135,207],{"class":76},[66,2137,2138],{"class":76}," 20\n",[20,2140,2141,2142,2144],{},"Это покажет все директории в корне (",[44,2143,46],{},") с глубиной вложенности 2 уровня и выведет топ-20 по размеру.",[138,2146,2147],{},[20,2148,709,2149,2151,2152,2154],{},[24,2150,1883],{},": Всегда добавляйте ",[44,2153,2085],{}," при анализе системных директорий, чтобы не видеть ошибки доступа.",[161,2156,2158,2159,2161],{"id":2157},"шаг-3-установка-и-использование-ncdu-для-интерактивного-анализа","Шаг 3: Установка и использование ",[44,2160,263],{}," для интерактивного анализа",[20,2163,2164,2168],{},[24,2165,2166],{},[44,2167,263],{}," (NCurses Disk Usage) — интерактивная утилита, которая кардинально упрощает поиск больших файлов. Она показывает древовидную структуру с размерами и позволяет удалять файлы прямо из интерфейса.",[1998,2170,2172],{"id":2171},"установка","Установка:",[82,2174,2175,2204,2227],{},[85,2176,2177,2180,2181],{},[24,2178,2179],{},"Debian/Ubuntu",":\n",[57,2182,2184],{"className":59,"code":2183,"language":61,"meta":62,"style":62},"sudo apt update && sudo apt install ncdu\n",[44,2185,2186],{"__ignoreMap":62},[66,2187,2188,2190,2192,2194,2196,2198,2200,2202],{"class":68,"line":69},[66,2189,181],{"class":72},[66,2191,281],{"class":184},[66,2193,284],{"class":184},[66,2195,288],{"class":287},[66,2197,181],{"class":72},[66,2199,281],{"class":184},[66,2201,295],{"class":184},[66,2203,298],{"class":184},[85,2205,2206,2180,2209],{},[24,2207,2208],{},"RHEL/CentOS/Fedora",[57,2210,2212],{"className":59,"code":2211,"language":61,"meta":62,"style":62},"sudo yum install ncdu   # или dnf на Fedora\n",[44,2213,2214],{"__ignoreMap":62},[66,2215,2216,2218,2220,2222,2224],{"class":68,"line":69},[66,2217,181],{"class":72},[66,2219,319],{"class":184},[66,2221,295],{"class":184},[66,2223,373],{"class":184},[66,2225,2226],{"class":174},"   # или dnf на Fedora\n",[85,2228,2229,2180,2231],{},[24,2230,9],{},[57,2232,2234],{"className":59,"code":2233,"language":61,"meta":62,"style":62},"sudo pacman -S ncdu\n",[44,2235,2236],{"__ignoreMap":62},[66,2237,2238,2240,2242,2244],{"class":68,"line":69},[66,2239,181],{"class":72},[66,2241,353],{"class":184},[66,2243,356],{"class":76},[66,2245,298],{"class":184},[1998,2247,2249],{"id":2248},"использование","Использование:",[57,2251,2253],{"className":59,"code":2252,"language":61,"meta":62,"style":62},"ncdu /путь/к/директории\n",[44,2254,2255],{"__ignoreMap":62},[66,2256,2257,2259],{"class":68,"line":69},[66,2258,263],{"class":72},[66,2260,2261],{"class":184}," /путь/к/директории\n",[20,2263,2264,2265,2267],{},"Например, ",[44,2266,1721],{}," для анализа всего корня (может потребовать несколько минут).",[20,2269,2270],{},[24,2271,2272,2273,2275],{},"Управление в ",[44,2274,263],{},":",[82,2277,2278,2288,2294,2299,2305],{},[85,2279,2280,2281,46,2284,2287],{},"Стрелки ",[44,2282,2283],{},"↑",[44,2285,2286],{},"↓"," — навигация.",[85,2289,2290,2293],{},[44,2291,2292],{},"Enter"," — войти в папку.",[85,2295,2296,2298],{},[44,2297,386],{}," — удалить выделенный файл/папку (с подтверждением).",[85,2300,2301,2304],{},[44,2302,2303],{},"q"," — выйти.",[85,2306,2307,2309],{},[44,2308,1486],{}," — справка.",[20,2311,2312],{},"Интерфейс сразу показывает, какие папки \"съедают\" больше всего места, и позволяет быстро cleanspace.",[389,2314],{},[161,2316,2318,2319],{"id":2317},"шаг-4-настройка-автоматического-мониторинга-через-cron","Шаг 4: Настройка автоматического мониторинга через ",[44,2320,1132],{},[20,2322,2323],{},"Давайте настроим скрипт, который будет проверять использование диска каждый час и слать уведомление, если оно превышает 90%.",[1998,2325,2327],{"id":2326},"создайте-скрипт","Создайте скрипт:",[57,2329,2331],{"className":59,"code":2330,"language":61,"meta":62,"style":62},"sudo nano /usr/local/bin/disk-monitor.sh\n",[44,2332,2333],{"__ignoreMap":62},[66,2334,2335,2337,2340],{"class":68,"line":69},[66,2336,181],{"class":72},[66,2338,2339],{"class":184}," nano",[66,2341,2342],{"class":184}," /usr/local/bin/disk-monitor.sh\n",[20,2344,2345],{},"Вставьте следующий код:",[57,2347,2349],{"className":59,"code":2348,"language":61,"meta":62,"style":62},"#!/bin/bash\n# Скрипт мониторинга дискового пространства\nTHRESHOLD=90\nEMAIL=\"admin@example.com\"  # Замените на ваш email\nHOSTNAME=$(hostname)\n\n# Получаем использование для корневого раздела (можно добавить другие)\nUSAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')\n\nif [ \"$USAGE\" -ge \"$THRESHOLD\" ]; then\n    echo \"ВНИМАНИЕ: Дисковое пространство на $HOSTNAME заполнено на $USAGE% (порог: $THRESHOLD%).\" | \\\n    mail -s \"Критическое заполнение диска на $HOSTNAME\" $EMAIL\nfi\n",[44,2350,2351,2355,2360,2368,2381,2394,2398,2403,2433,2437,2469,2498,2516],{"__ignoreMap":62},[66,2352,2353],{"class":68,"line":69},[66,2354,1147],{"class":174},[66,2356,2357],{"class":68,"line":178},[66,2358,2359],{"class":174},"# Скрипт мониторинга дискового пространства\n",[66,2361,2362,2364,2366],{"class":68,"line":301},[66,2363,1152],{"class":287},[66,2365,1155],{"class":194},[66,2367,1158],{"class":184},[66,2369,2370,2373,2375,2378],{"class":68,"line":308},[66,2371,2372],{"class":287},"EMAIL",[66,2374,1155],{"class":194},[66,2376,2377],{"class":184},"\"admin@example.com\"",[66,2379,2380],{"class":174},"  # Замените на ваш email\n",[66,2382,2383,2386,2388,2390,2392],{"class":68,"line":314},[66,2384,2385],{"class":287},"HOSTNAME",[66,2387,1155],{"class":194},[66,2389,1211],{"class":287},[66,2391,1304],{"class":72},[66,2393,1242],{"class":287},[66,2395,2396],{"class":68,"line":337},[66,2397,305],{"emptyLinePlaceholder":304},[66,2399,2400],{"class":68,"line":342},[66,2401,2402],{"class":174},"# Получаем использование для корневого раздела (можно добавить другие)\n",[66,2404,2405,2408,2410,2412,2414,2416,2418,2420,2423,2425,2428,2431],{"class":68,"line":348},[66,2406,2407],{"class":287},"USAGE",[66,2409,1155],{"class":194},[66,2411,1211],{"class":287},[66,2413,73],{"class":72},[66,2415,191],{"class":184},[66,2417,201],{"class":194},[66,2419,866],{"class":72},[66,2421,2422],{"class":184}," 'NR==2 {print $5}'",[66,2424,201],{"class":194},[66,2426,2427],{"class":72}," sed",[66,2429,2430],{"class":184}," 's/%//'",[66,2432,1242],{"class":287},[66,2434,2435],{"class":68,"line":478},[66,2436,305],{"emptyLinePlaceholder":304},[66,2438,2439,2442,2445,2448,2451,2453,2456,2459,2462,2464,2467],{"class":68,"line":484},[66,2440,2441],{"class":194},"if",[66,2443,2444],{"class":287}," [ ",[66,2446,2447],{"class":184},"\"",[66,2449,2450],{"class":287},"$USAGE",[66,2452,2447],{"class":184},[66,2454,2455],{"class":194}," -ge",[66,2457,2458],{"class":184}," \"",[66,2460,2461],{"class":287},"$THRESHOLD",[66,2463,2447],{"class":184},[66,2465,2466],{"class":287}," ]; ",[66,2468,1281],{"class":194},[66,2470,2472,2474,2477,2480,2483,2485,2488,2490,2493,2495],{"class":68,"line":2471},11,[66,2473,1286],{"class":76},[66,2475,2476],{"class":184}," \"ВНИМАНИЕ: Дисковое пространство на ",[66,2478,2479],{"class":287},"$HOSTNAME",[66,2481,2482],{"class":184}," заполнено на ",[66,2484,2450],{"class":287},[66,2486,2487],{"class":184},"% (порог: ",[66,2489,2461],{"class":287},[66,2491,2492],{"class":184},"%).\"",[66,2494,201],{"class":194},[66,2496,2497],{"class":76}," \\\n",[66,2499,2501,2504,2506,2509,2511,2513],{"class":68,"line":2500},12,[66,2502,2503],{"class":72},"    mail",[66,2505,695],{"class":76},[66,2507,2508],{"class":184}," \"Критическое заполнение диска на ",[66,2510,2479],{"class":287},[66,2512,2447],{"class":184},[66,2514,2515],{"class":287}," $EMAIL\n",[66,2517,2519],{"class":68,"line":2518},13,[66,2520,2521],{"class":194},"fi\n",[20,2523,2524],{},[24,2525,2526],{},"Пояснения:",[82,2528,2529,2535,2541,2550],{},[85,2530,2531,2534],{},[44,2532,2533],{},"df /"," — получаем строку для корня.",[85,2536,2537,2540],{},[44,2538,2539],{},"awk 'NR==2 {print $5}'"," — берем 5-ю колонку (процент использования) из второй строки.",[85,2542,2543,2546,2547,55],{},[44,2544,2545],{},"sed 's/%//'"," — удаляем символ ",[44,2548,2549],{},"%",[85,2551,2552,2555,2556,1419,2559,136],{},[44,2553,2554],{},"mail"," — отправка email. Убедитесь, что установлен ",[44,2557,2558],{},"mailutils",[44,2560,2561],{},"sudo apt install mailutils",[20,2563,2564],{},"Сделайте скрипт исполняемым:",[57,2566,2568],{"className":59,"code":2567,"language":61,"meta":62,"style":62},"sudo chmod +x /usr/local/bin/disk-monitor.sh\n",[44,2569,2570],{"__ignoreMap":62},[66,2571,2572,2574,2577,2580],{"class":68,"line":69},[66,2573,181],{"class":72},[66,2575,2576],{"class":184}," chmod",[66,2578,2579],{"class":184}," +x",[66,2581,2342],{"class":184},[1998,2583,2585,2586,2275],{"id":2584},"добавьте-в-cron","Добавьте в ",[44,2587,1132],{},[57,2589,2591],{"className":59,"code":2590,"language":61,"meta":62,"style":62},"sudo crontab -e\n",[44,2592,2593],{"__ignoreMap":62},[66,2594,2595,2597,2600],{"class":68,"line":69},[66,2596,181],{"class":72},[66,2598,2599],{"class":184}," crontab",[66,2601,2602],{"class":76}," -e\n",[20,2604,2605],{},"Добавьте строку (выполнять каждый час):",[57,2607,2610],{"className":2608,"code":2609,"language":128},[126],"0 * * * * /usr/local/bin/disk-monitor.sh\n",[44,2611,2609],{"__ignoreMap":62},[20,2613,2614],{},"Сохраните и выйдите. Теперь скрипт будет автоматически проверять диск.",[138,2616,2617],{},[20,2618,709,2619,2621,2622,2624],{},[24,2620,1883],{},": Для тестирования временно снизьте ",[44,2623,1152],{}," до 5% и дождитесь следующего часа или запустите скрипт вручную.",[161,2626,2628],{"id":2627},"шаг-5-использование-графических-утилит-для-десктопов","Шаг 5: Использование графических утилит (для десктопов)",[20,2630,2631],{},"Если вы работаете в графическом окружении (GNOME, KDE, XFCE), есть удобные визуальные инструменты:",[82,2633,2634,2653,2686],{},[85,2635,2636,2639,2640],{},[24,2637,2638],{},"Disk Usage Analyzer (baobab)"," — входит в GNOME. Показывает круговые и древовидные диаграммы.\n",[57,2641,2643],{"className":59,"code":2642,"language":61,"meta":62,"style":62},"baobab /home\n",[44,2644,2645],{"__ignoreMap":62},[66,2646,2647,2650],{"class":68,"line":69},[66,2648,2649],{"class":72},"baobab",[66,2651,2652],{"class":184}," /home\n",[85,2654,2655,2658,2659],{},[24,2656,2657],{},"Filelight"," — для KDE, отображает использование в виде концентрических кругов.\n",[57,2660,2662],{"className":59,"code":2661,"language":61,"meta":62,"style":62},"sudo apt install filelight  # Debian/Ubuntu\nfilelight ~\n",[44,2663,2664,2678],{"__ignoreMap":62},[66,2665,2666,2668,2670,2672,2675],{"class":68,"line":69},[66,2667,181],{"class":72},[66,2669,281],{"class":184},[66,2671,295],{"class":184},[66,2673,2674],{"class":184}," filelight",[66,2676,2677],{"class":174},"  # Debian/Ubuntu\n",[66,2679,2680,2683],{"class":68,"line":178},[66,2681,2682],{"class":72},"filelight",[66,2684,2685],{"class":184}," ~\n",[85,2687,2688,2691],{},[24,2689,2690],{},"QDirStat"," — кроссплатформенный, показывает не только размер но и количество файлов.",[20,2693,2694],{},"Установите через менеджер пакетов и запустите из меню приложений или терминала.",[36,2696,2698],{"id":2697},"проверка-результата","Проверка результата",[1075,2700,2701,2714,2725],{},[85,2702,2703,2710,2711,2713],{},[24,2704,2705,2706,729,2708],{},"Для ",[44,2707,73],{},[44,2709,1482],{},": Выполните команды и убедитесь, что вывод соответствует ожиданиям. Например, ",[44,2712,1697],{}," должен показать актуальное использование.",[85,2715,2716,2720,2721,2724],{},[24,2717,2705,2718],{},[44,2719,263],{},": Запустите на тестовой директории (например, ",[44,2722,2723],{},"~/Downloads",") и проверьте, что интерфейс отображает файлы и папки.",[85,2726,2727,2180,2730],{},[24,2728,2729],{},"Для автоматического мониторинга",[82,2731,2732,2738,2741],{},[85,2733,2734,2735],{},"Запустите скрипт вручную: ",[44,2736,2737],{},"sudo /usr/local/bin/disk-monitor.sh",[85,2739,2740],{},"Проверьте почту (или логи, если email не настроен).",[85,2742,2743,2744,2747,2748,136],{},"Посмотрите записи в системном логе: ",[44,2745,2746],{},"grep disk-monitor /var/log/syslog"," (или ",[44,2749,2750],{},"journalctl",[20,2752,2753],{},"Если все работает, вы успешно настроили мониторинг!",[36,2755,2757],{"id":2756},"возможные-проблемы","Возможные проблемы",[161,2759,2761,2762],{"id":2760},"_1-ошибки-permission-denied-при-использовании-du","1. Ошибки \"Permission denied\" при использовании ",[44,2763,1482],{},[20,2765,2766,2769,2770,2773,2774,1456,2776,2778,2779,2781,2782,2785],{},[24,2767,2768],{},"Причина",": Нет прав на чтение某些 системных директорий.\n",[24,2771,2772],{},"Решение",": Запускайте ",[44,2775,1482],{},[44,2777,181],{}," (осторожно!) или используйте ",[44,2780,2085],{}," для подавления ошибок. Для полной картины выполните ",[44,2783,2784],{},"sudo du -sh /var"," (только если точно знаете, что делаете).",[161,2787,2789,2790,2792,2793],{"id":2788},"_2-du-показывает-больше-места-чем-df","2. ",[44,2791,1482],{}," показывает больше места, чем ",[44,2794,73],{},[20,2796,2797,2275],{},[24,2798,2768],{},[82,2800,2801,2807],{},[85,2802,2803,2804,55],{},"Удаленные, но все еще открытые процессыми файлы (например, логи, которые удалили, но процесс пишет в них). Они занимают место на диске, но не видны в ",[44,2805,2806],{},"ls",[85,2808,2809,2810,2812,2813,2815],{},"Зарезервированное пространство для root (обычно 5% в ext4), которое ",[44,2811,1482],{}," не учитывает.\n",[24,2814,2772],{},": Найдите такие файлы:",[57,2817,2819],{"className":59,"code":2818,"language":61,"meta":62,"style":62},"sudo lsof | grep deleted\n",[44,2820,2821],{"__ignoreMap":62},[66,2822,2823,2825,2828,2830,2832],{"class":68,"line":69},[66,2824,181],{"class":72},[66,2826,2827],{"class":184}," lsof",[66,2829,201],{"class":194},[66,2831,472],{"class":72},[66,2833,2834],{"class":184}," deleted\n",[20,2836,2837],{},"Завершите процесс или скопируйте файл, затем перезапустите сервис.",[161,2839,2841,2842,2844],{"id":2840},"_3-ncdu-работает-очень-долго-на-больших-файловых-системах","3. ",[44,2843,263],{}," работает очень долго на больших файловых системах",[20,2846,2847,2849,2850,2852,2853,2855,2856,2859,2860,136],{},[24,2848,2768],{},": Анализ миллионов файлов требует времени.\n",[24,2851,2772],{},": Ограничьте анализ конкретной директорией (не ",[44,2854,46],{},"), или используйте ",[44,2857,2858],{},"--exclude"," для пропуска кэшей (например, ",[44,2861,2862],{},"ncdu --exclude /proc --exclude /sys /",[161,2864,2866],{"id":2865},"_4-автоматический-скрипт-не-отправляет-email","4. Автоматический скрипт не отправляет email",[20,2868,2869,2871,2872,2275],{},[24,2870,2768],{},": Не настроен MTA (почтовый агент) или указан неверный email.\n",[24,2873,2772],{},[82,2875,2876,2884,2890],{},[85,2877,260,2878,2880,2881,136],{},[44,2879,2558],{}," и настройте локальный MTA (например, ",[44,2882,2883],{},"postfix",[85,2885,2886,2887,55],{},"Для теста отправьте письмо вручную: ",[44,2888,2889],{},"echo \"test\" | mail -s \"test\" you@example.com",[85,2891,2892,2893,136],{},"Проверьте, что скрипт выполняется от root (через ",[44,2894,2895],{},"sudo crontab -e",[161,2897,2899,2900],{"id":2898},"_5-символические-ссылки-и-du","5. Символические ссылки и ",[44,2901,1482],{},[20,2903,2904,2906,2907,2909,2910,2913,2914,2916,2917,2919,2920,2923],{},[24,2905,2768],{},": По умолчанию ",[44,2908,1482],{}," не следует за символическими ссылками, но если использовать ",[44,2911,2912],{},"-L",", может зациклиться.\n",[24,2915,2772],{},": Избегайте ",[44,2918,2912],{}," при анализе системных директорий. Для конкретных случаев используйте ",[44,2921,2922],{},"du -L"," с осторожностью.",[1510,2925],{},[20,2927,2928],{},"Теперь вы вооружены знаниями, чтобы никогда не быть застигнутыми врасплох заполнением диска. Регулярный мониторинг — это маленький объем работы, который спасает от больших проблем. Удачи в администрировании!",[1525,2930,2931],{},"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}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":62,"searchDepth":178,"depth":178,"links":2933},[2934,2935,2936,2947,2948],{"id":1826,"depth":178,"text":1827},{"id":1844,"depth":178,"text":1845},{"id":1887,"depth":178,"text":1888,"children":2937},[2938,2940,2942,2944,2946],{"id":1891,"depth":301,"text":2939},"Шаг 1: Проверка общего использования диска командой df",{"id":1982,"depth":301,"text":2941},"Шаг 2: Анализ использования конкретных директорий с помощью du",{"id":2157,"depth":301,"text":2943},"Шаг 3: Установка и использование ncdu для интерактивного анализа",{"id":2317,"depth":301,"text":2945},"Шаг 4: Настройка автоматического мониторинга через cron",{"id":2627,"depth":301,"text":2628},{"id":2697,"depth":178,"text":2698},{"id":2756,"depth":178,"text":2757,"children":2949},[2950,2952,2954,2956,2957],{"id":2760,"depth":301,"text":2951},"1. Ошибки \"Permission denied\" при использовании du",{"id":2788,"depth":301,"text":2953},"2. du показывает больше места, чем df",{"id":2840,"depth":301,"text":2955},"3. ncdu работает очень долго на больших файловых системах",{"id":2865,"depth":301,"text":2866},{"id":2898,"depth":301,"text":2958},"5. Символические ссылки и du","2026-02-15 00:03:03","Узнайте, как эффективно отслеживать использование диска в Linux с помощью df, du и ncdu. Пошаговая инструкция по настройке автоматического мониторинга и предотвращению проблем.","15-20 мин",[2963,2966,2969,2972],{"question":2964,"answer":2965},"Как проверить, какие папки занимают больше всего места?","Используйте команду `du -sh /* | sort -rh | head -n 10` для поиска самых больших папок в корне, или установите `ncdu` для интерактивного анализа.",{"question":2967,"answer":2968},"Как настроить оповещение при заполнении диска на 90%?","Создайте скрипт, который проверяет использование диска через `df` и отправляет email или запускает команду, когда использование превышает порог. Добавьте его в cron.",{"question":2970,"answer":2971},"Почему `du` показывает больше места, чем `df`?","Это может быть связано с удаленными файлами, которые еще открыты процессами, или с различием в отображении зарезервированного пространства. Используйте `lsof | grep deleted` для поиска удаленных но открытых файлов.",{"question":2973,"answer":2974},"Можно ли мониторить диски в реальном времени?","Да, с помощью утилиты `watch` (например, `watch -n 5 df -h`) или интерактивных инструментов вроде `ncdu`.",[2976,2979,2982,2985,2988],{"name":2977,"text":2978},"Проверка общего использования диска командой df","Откройте терминал и выполните `df -h`, чтобы увидеть использование всех смонтированных файловых систем в удобочитаемом формате.",{"name":2980,"text":2981},"Анализ использования конкретных директорий с помощью du","Используйте `du -sh \u003Cдиректория>` для получения суммарного размера директории. Для поиска больших папок в текущей директории: `du -sh * | sort -rh | head -n 10`.",{"name":2983,"text":2984},"Установка и использование ncdu для интерактивного анализа","Установите ncdu через менеджер пакетов (например, `sudo apt install ncdu` для Debian/Ubuntu). Запустите `ncdu /путь/к/директории` для навигации и анализа.",{"name":2986,"text":2987},"Настройка автоматического мониторинга через cron","Создайте скрипт, который проверяет использование диска и отправляет уведомление, если оно превышает заданный порог. Добавьте задание в crontab (например, `crontab -e` и добавьте `0 * * * * /path/to/script.sh`).",{"name":2989,"text":2990},"Использование графических утилит (для десктопов)","В графических окружениях (GNOME, KDE) есть утилиты вроде 'Disk Usage Analyzer' (baobab) или 'Filelight'. Установите их через менеджер пакетов и запустите.","PT20M",[2993,2994,2995,2996,2997,2998,2999,3000,3001,3002],"мониторинг диска linux","проверить свободное место linux","df команда linux","du команда linux","ncdu установка","автоматический мониторинг диска linux","заполнение диска linux","анализ использования диска linux","disk usage monitoring linux","linux disk space alert",{},[3005,3006,3007],"/guides/linux/disk-cleanup-ubuntu","/guides/linux/filesystem-resize","/errors/linux/no-space-left-on-device","Гайды Linux",{"title":1816,"description":2960},"medium","guides/linux/disk-usage-monitoring","В этом гайде вы научитесь использовать встроенные и сторонние инструменты для мониторинга дискового пространства в Linux, а также настроите автоматические оповещения о заполнении диска.",[1600,3014,3015,73,1482,263,1132,1613],"disk-usage","monitoring","H39d3DfdixGfF0ESgYcpUtOUs3cYUv8Y2-bWWgzTmE0",{"id":3018,"title":3019,"appliesTo":3020,"author":11,"body":3026,"canonical":1550,"code":3901,"createdAt":3902,"description":3903,"difficulty":3010,"draft":1554,"estimatedTime":3904,"extension":1556,"faq":3905,"howToSteps":3915,"howToTotalTime":3928,"image":1550,"keywords":3929,"locale":1597,"meta":3936,"navigation":304,"path":1603,"platform":1600,"related":3937,"section":1605,"seo":3941,"severity":1607,"stem":3942,"summary":3943,"tags":3944,"twitterCreator":1550,"twitterSite":1550,"type":3948,"updatedAt":3902,"__hash__":3949},"content_ru/errors/linux/read-only-file-system.md","Ошибка Read-only File System в Linux: причины и решения",[3021,3022,3023,3024,3025],"Ubuntu 20.04/22.04","Debian 11/12","CentOS 7/8","Fedora 36+","Linux Mint",{"type":13,"value":3027,"toc":3877},[3028,3032,3039,3043,3046,3060,3066,3070,3073,3077,3080,3091,3095,3098,3112,3116,3123,3140,3144,3147,3151,3154,3156,3160,3164,3167,3227,3238,3242,3245,3323,3326,3330,3333,3428,3432,3436,3439,3511,3514,3518,3521,3526,3620,3624,3630,3671,3679,3707,3710,3725,3729,3732,3746,3750,3753,3812,3816,3819,3857,3861,3864,3871,3874],[16,3029,3031],{"id":3030},"ошибка-read-only-file-system-в-linux","Ошибка Read-only File System в Linux",[20,3033,3034,3035,3038],{},"Ошибка ",[24,3036,3037],{},"«Read-only file system»"," (файловая система только для чтения) — одна из распространённых проблем в Linux, с которой сталкиваются пользователи и системные администраторы. Эта ошибка означает, что файловая система была смонтирована или переведена в режим, допускающий только чтение данных, и любые попытки записи, создания или изменения файлов завершаются неудачей.",[36,3040,3042],{"id":3041},"симптомы-ошибки","Симптомы ошибки",[20,3044,3045],{},"При возникновении ошибки вы можете наблюдать следующие симптомы:",[82,3047,3048,3051,3054,3057],{},[85,3049,3050],{},"Невозможность создать, изменить или удалить файлы",[85,3052,3053],{},"Ошибки вида «Read-only file system» при попытке записи",[85,3055,3056],{},"Невозможность сохранить изменения в конфигурационных файлах",[85,3058,3059],{},"Предупреждения от приложений о невозможности записи данных",[57,3061,3064],{"className":3062,"code":3063,"language":128},[126],"cp: cannot create regular file '/path/to/file': Read-only file system\ntouch: cannot touch '/path/to/file': Read-only file system\necho \"text\" > file.txt: Read-only file system\n",[44,3065,3063],{"__ignoreMap":62},[36,3067,3069],{"id":3068},"причины-возникновения","Причины возникновения",[20,3071,3072],{},"Существует несколько основных причин, по которым файловая система может перейти в режим только для чтения:",[161,3074,3076],{"id":3075},"_1-автоматическая-защита-от-повреждений","1. Автоматическая защита от повреждений",[20,3078,3079],{},"Ядро Linux автоматически переводит файловую систему в режим только чтения при обнаружении критических ошибок, чтобы предотвратить дальнейшее повреждение данных. Это может произойти при обнаружении:",[82,3081,3082,3085,3088],{},[85,3083,3084],{},"Ошибок в журнале файловой системы",[85,3086,3087],{},"Несовпадения контрольных сумм",[85,3089,3090],{},"Критических ошибок ввода/вывода",[161,3092,3094],{"id":3093},"_2-проблемы-с-носителем","2. Проблемы с носителем",[20,3096,3097],{},"Аппаратные проблемы с диском или SSD-накопителем также могут вызвать данную ошибку:",[82,3099,3100,3103,3106,3109],{},[85,3101,3102],{},"Физические повреждения диска",[85,3104,3105],{},"Проблемы с SATA/NVMe кабелем",[85,3107,3108],{},"Неисправность контроллера накопителя",[85,3110,3111],{},"Износ SSD (достижение лимита перезаписи)",[161,3113,3115],{"id":3114},"_3-неправильные-параметры-монтирования","3. Неправильные параметры монтирования",[20,3117,3118,3119,3122],{},"Ошибки в конфигурации ",[44,3120,3121],{},"/etc/fstab"," могут привести к монтированию файловой системы в неправильном режиме:",[57,3124,3128],{"className":3125,"code":3126,"language":3127,"meta":62,"style":62},"language-fstab shiki shiki-themes github-light github-dark","# Пример неправильной записи (параметр ro = read-only)\nUUID=xxx / ext4 ro 0 1\n","fstab",[44,3129,3130,3135],{"__ignoreMap":62},[66,3131,3132],{"class":68,"line":69},[66,3133,3134],{},"# Пример неправильной записи (параметр ro = read-only)\n",[66,3136,3137],{"class":68,"line":178},[66,3138,3139],{},"UUID=xxx / ext4 ro 0 1\n",[161,3141,3143],{"id":3142},"_4-проблемы-с-правами-доступа","4. Проблемы с правами доступа",[20,3145,3146],{},"Хотя это встречается реже, неправильные права на точку монтирования могут вызывать проблемы с записью.",[161,3148,3150],{"id":3149},"_5-внешние-носители","5. Внешние носители",[20,3152,3153],{},"USB-накопители, SD-карты и внешние жёсткие диски могут иметь аппаратную защиту от записи или быть повреждены.",[389,3155],{},[36,3157,3159],{"id":3158},"диагностика-проблемы","Диагностика проблемы",[161,3161,3163],{"id":3162},"шаг-1-проверка-статуса-монтирования","Шаг 1: Проверка статуса монтирования",[20,3165,3166],{},"Первым делом необходимо определить, какие файловые системы смонтированы и в каком режиме:",[57,3168,3170],{"className":59,"code":3169,"language":61,"meta":62,"style":62},"# Просмотр всех смонтированных файловых систем\nmount | grep -i '/dev/sd'\n\n# Подробная информация о конкретной файловой системе\nmount | grep '/dev/sda1'\n\n# Проверка использования дисков\ndf -h\n",[44,3171,3172,3177,3192,3196,3201,3212,3216,3221],{"__ignoreMap":62},[66,3173,3174],{"class":68,"line":69},[66,3175,3176],{"class":174},"# Просмотр всех смонтированных файловых систем\n",[66,3178,3179,3182,3184,3186,3189],{"class":68,"line":178},[66,3180,3181],{"class":72},"mount",[66,3183,201],{"class":194},[66,3185,472],{"class":72},[66,3187,3188],{"class":76}," -i",[66,3190,3191],{"class":184}," '/dev/sd'\n",[66,3193,3194],{"class":68,"line":301},[66,3195,305],{"emptyLinePlaceholder":304},[66,3197,3198],{"class":68,"line":308},[66,3199,3200],{"class":174},"# Подробная информация о конкретной файловой системе\n",[66,3202,3203,3205,3207,3209],{"class":68,"line":314},[66,3204,3181],{"class":72},[66,3206,201],{"class":194},[66,3208,472],{"class":72},[66,3210,3211],{"class":184}," '/dev/sda1'\n",[66,3213,3214],{"class":68,"line":337},[66,3215,305],{"emptyLinePlaceholder":304},[66,3217,3218],{"class":68,"line":342},[66,3219,3220],{"class":174},"# Проверка использования дисков\n",[66,3222,3223,3225],{"class":68,"line":348},[66,3224,73],{"class":72},[66,3226,77],{"class":76},[20,3228,3229,3230,3233,3234,3237],{},"Обратите внимание на параметры монтирования в выводе команды. Если вы видите ",[44,3231,3232],{},"ro"," вместо ",[44,3235,3236],{},"rw",", это означает, что файловая система смонтирована только для чтения.",[161,3239,3241],{"id":3240},"шаг-2-проверка-системного-журнала","Шаг 2: Проверка системного журнала",[20,3243,3244],{},"Системный журнал часто содержит ценную информацию о причинах перехода в режим только чтения:",[57,3246,3248],{"className":59,"code":3247,"language":61,"meta":62,"style":62},"# Просмотр последних сообщений ядра\ndmesg | tail -100 | grep -i 'error\\|fail\\|readonly'\n\n# Просмотр журнала systemd (для современных дистрибутивов)\njournalctl -xe | grep -i 'filesystem\\|mount\\|error'\n\n# Фильтрация по конкретному устройству\ndmesg | grep -i sda\n",[44,3249,3250,3255,3276,3280,3285,3301,3305,3310],{"__ignoreMap":62},[66,3251,3252],{"class":68,"line":69},[66,3253,3254],{"class":174},"# Просмотр последних сообщений ядра\n",[66,3256,3257,3260,3262,3264,3267,3269,3271,3273],{"class":68,"line":178},[66,3258,3259],{"class":72},"dmesg",[66,3261,201],{"class":194},[66,3263,212],{"class":72},[66,3265,3266],{"class":76}," -100",[66,3268,201],{"class":194},[66,3270,472],{"class":72},[66,3272,3188],{"class":76},[66,3274,3275],{"class":184}," 'error\\|fail\\|readonly'\n",[66,3277,3278],{"class":68,"line":301},[66,3279,305],{"emptyLinePlaceholder":304},[66,3281,3282],{"class":68,"line":308},[66,3283,3284],{"class":174},"# Просмотр журнала systemd (для современных дистрибутивов)\n",[66,3286,3287,3289,3292,3294,3296,3298],{"class":68,"line":314},[66,3288,2750],{"class":72},[66,3290,3291],{"class":76}," -xe",[66,3293,201],{"class":194},[66,3295,472],{"class":72},[66,3297,3188],{"class":76},[66,3299,3300],{"class":184}," 'filesystem\\|mount\\|error'\n",[66,3302,3303],{"class":68,"line":337},[66,3304,305],{"emptyLinePlaceholder":304},[66,3306,3307],{"class":68,"line":342},[66,3308,3309],{"class":174},"# Фильтрация по конкретному устройству\n",[66,3311,3312,3314,3316,3318,3320],{"class":68,"line":348},[66,3313,3259],{"class":72},[66,3315,201],{"class":194},[66,3317,472],{"class":72},[66,3319,3188],{"class":76},[66,3321,3322],{"class":184}," sda\n",[20,3324,3325],{},"Ищите сообщения об ошибках ввода/вывода, ошибки файловой системы или предупреждения о проблемах с диском.",[161,3327,3329],{"id":3328},"шаг-3-проверка-состояния-диска-smart","Шаг 3: Проверка состояния диска (S.M.A.R.T.)",[20,3331,3332],{},"Если есть подозрение на аппаратные проблемы, проверьте состояние накопителя:",[57,3334,3336],{"className":59,"code":3335,"language":61,"meta":62,"style":62},"# Установка smartmontools (если не установлен)\nsudo apt install smartmontools  # Debian/Ubuntu\nsudo yum install smartmontools  # CentOS/RHEL\n\n# Получение информации о диске\nsudo smartctl -i /dev/sda\n\n# Краткий тест здоровья\nsudo smartctl -H /dev/sda\n\n# Расширенная информация\nsudo smartctl -a /dev/sda\n",[44,3337,3338,3343,3356,3369,3373,3378,3390,3394,3399,3409,3413,3418],{"__ignoreMap":62},[66,3339,3340],{"class":68,"line":69},[66,3341,3342],{"class":174},"# Установка smartmontools (если не установлен)\n",[66,3344,3345,3347,3349,3351,3354],{"class":68,"line":178},[66,3346,181],{"class":72},[66,3348,281],{"class":184},[66,3350,295],{"class":184},[66,3352,3353],{"class":184}," smartmontools",[66,3355,2677],{"class":174},[66,3357,3358,3360,3362,3364,3366],{"class":68,"line":301},[66,3359,181],{"class":72},[66,3361,319],{"class":184},[66,3363,295],{"class":184},[66,3365,3353],{"class":184},[66,3367,3368],{"class":174},"  # CentOS/RHEL\n",[66,3370,3371],{"class":68,"line":308},[66,3372,305],{"emptyLinePlaceholder":304},[66,3374,3375],{"class":68,"line":314},[66,3376,3377],{"class":174},"# Получение информации о диске\n",[66,3379,3380,3382,3385,3387],{"class":68,"line":337},[66,3381,181],{"class":72},[66,3383,3384],{"class":184}," smartctl",[66,3386,3188],{"class":76},[66,3388,3389],{"class":184}," /dev/sda\n",[66,3391,3392],{"class":68,"line":342},[66,3393,305],{"emptyLinePlaceholder":304},[66,3395,3396],{"class":68,"line":348},[66,3397,3398],{"class":174},"# Краткий тест здоровья\n",[66,3400,3401,3403,3405,3407],{"class":68,"line":478},[66,3402,181],{"class":72},[66,3404,3384],{"class":184},[66,3406,1165],{"class":76},[66,3408,3389],{"class":184},[66,3410,3411],{"class":68,"line":484},[66,3412,305],{"emptyLinePlaceholder":304},[66,3414,3415],{"class":68,"line":2471},[66,3416,3417],{"class":174},"# Расширенная информация\n",[66,3419,3420,3422,3424,3426],{"class":68,"line":2500},[66,3421,181],{"class":72},[66,3423,3384],{"class":184},[66,3425,967],{"class":76},[66,3427,3389],{"class":184},[36,3429,3431],{"id":3430},"способы-устранения-ошибки","Способы устранения ошибки",[161,3433,3435],{"id":3434},"способ-1-перемонтирование-файловой-системы","Способ 1: Перемонтирование файловой системы",[20,3437,3438],{},"Если файловая система была смонтирована в режиме только чтения (но не заблокирована ядром), можно попробовать перемонтировать её:",[57,3440,3442],{"className":59,"code":3441,"language":61,"meta":62,"style":62},"# Перемонтирование в режим чтения/записи\nsudo mount -o remount,rw /mount/point\n\n# Например, для корневой файловой системы\nsudo mount -o remount,rw /\n\n# Для конкретного раздела\nsudo mount -o remount,rw /dev/sda1 /mnt\n",[44,3443,3444,3449,3465,3469,3474,3486,3490,3495],{"__ignoreMap":62},[66,3445,3446],{"class":68,"line":69},[66,3447,3448],{"class":174},"# Перемонтирование в режим чтения/записи\n",[66,3450,3451,3453,3456,3459,3462],{"class":68,"line":178},[66,3452,181],{"class":72},[66,3454,3455],{"class":184}," mount",[66,3457,3458],{"class":76}," -o",[66,3460,3461],{"class":184}," remount,rw",[66,3463,3464],{"class":184}," /mount/point\n",[66,3466,3467],{"class":68,"line":301},[66,3468,305],{"emptyLinePlaceholder":304},[66,3470,3471],{"class":68,"line":308},[66,3472,3473],{"class":174},"# Например, для корневой файловой системы\n",[66,3475,3476,3478,3480,3482,3484],{"class":68,"line":314},[66,3477,181],{"class":72},[66,3479,3455],{"class":184},[66,3481,3458],{"class":76},[66,3483,3461],{"class":184},[66,3485,376],{"class":184},[66,3487,3488],{"class":68,"line":337},[66,3489,305],{"emptyLinePlaceholder":304},[66,3491,3492],{"class":68,"line":342},[66,3493,3494],{"class":174},"# Для конкретного раздела\n",[66,3496,3497,3499,3501,3503,3505,3508],{"class":68,"line":348},[66,3498,181],{"class":72},[66,3500,3455],{"class":184},[66,3502,3458],{"class":76},[66,3504,3461],{"class":184},[66,3506,3507],{"class":184}," /dev/sda1",[66,3509,3510],{"class":184}," /mnt\n",[20,3512,3513],{},"Если перемонтирование прошло успешно, вы увидите соответствующее сообщение или просто вернётесь к приглашению командной строки без ошибок.",[161,3515,3517],{"id":3516},"способ-2-проверка-и-восстановление-файловой-системы","Способ 2: Проверка и восстановление файловой системы",[20,3519,3520],{},"При наличии ошибок в файловой системе необходимо выполнить её проверку и восстановление:",[20,3522,3523,3525],{},[24,3524,145],{}," Перед проверкой файловой системы раздел должен быть отмонтирован!",[57,3527,3529],{"className":59,"code":3528,"language":61,"meta":62,"style":62},"# Для корневой файловой системы загрузитесь с LiveUSB\n\n# Проверка файловой системы ext4\nsudo fsck -y /dev/sda1\n\n# Проверка с автоматическим исправлением\nsudo fsck -fy /dev/sda1\n\n# Проверка файловой системы XFS\nsudo xfs_repair /dev/sda1\n\n# Проверка файловой системы Btrfs\nsudo btrfs check --repair /dev/sda1\n",[44,3530,3531,3536,3540,3545,3558,3562,3567,3578,3582,3587,3596,3600,3605],{"__ignoreMap":62},[66,3532,3533],{"class":68,"line":69},[66,3534,3535],{"class":174},"# Для корневой файловой системы загрузитесь с LiveUSB\n",[66,3537,3538],{"class":68,"line":178},[66,3539,305],{"emptyLinePlaceholder":304},[66,3541,3542],{"class":68,"line":301},[66,3543,3544],{"class":174},"# Проверка файловой системы ext4\n",[66,3546,3547,3549,3552,3555],{"class":68,"line":308},[66,3548,181],{"class":72},[66,3550,3551],{"class":184}," fsck",[66,3553,3554],{"class":76}," -y",[66,3556,3557],{"class":184}," /dev/sda1\n",[66,3559,3560],{"class":68,"line":314},[66,3561,305],{"emptyLinePlaceholder":304},[66,3563,3564],{"class":68,"line":337},[66,3565,3566],{"class":174},"# Проверка с автоматическим исправлением\n",[66,3568,3569,3571,3573,3576],{"class":68,"line":342},[66,3570,181],{"class":72},[66,3572,3551],{"class":184},[66,3574,3575],{"class":76}," -fy",[66,3577,3557],{"class":184},[66,3579,3580],{"class":68,"line":348},[66,3581,305],{"emptyLinePlaceholder":304},[66,3583,3584],{"class":68,"line":478},[66,3585,3586],{"class":174},"# Проверка файловой системы XFS\n",[66,3588,3589,3591,3594],{"class":68,"line":484},[66,3590,181],{"class":72},[66,3592,3593],{"class":184}," xfs_repair",[66,3595,3557],{"class":184},[66,3597,3598],{"class":68,"line":2471},[66,3599,305],{"emptyLinePlaceholder":304},[66,3601,3602],{"class":68,"line":2500},[66,3603,3604],{"class":174},"# Проверка файловой системы Btrfs\n",[66,3606,3607,3609,3612,3615,3618],{"class":68,"line":2518},[66,3608,181],{"class":72},[66,3610,3611],{"class":184}," btrfs",[66,3613,3614],{"class":184}," check",[66,3616,3617],{"class":76}," --repair",[66,3619,3557],{"class":184},[161,3621,3623],{"id":3622},"способ-3-исправление-конфигурации-etcfstab","Способ 3: Исправление конфигурации /etc/fstab",[20,3625,3626,3627,3629],{},"Если проблема вызвана неправильными параметрами в ",[44,3628,3121],{},", необходимо исправить конфигурацию:",[57,3631,3633],{"className":59,"code":3632,"language":61,"meta":62,"style":62},"# Резервное копирование fstab\nsudo cp /etc/fstab /etc/fstab.backup\n\n# Редактирование файла\nsudo nano /etc/fstab\n",[44,3634,3635,3640,3653,3657,3662],{"__ignoreMap":62},[66,3636,3637],{"class":68,"line":69},[66,3638,3639],{"class":174},"# Резервное копирование fstab\n",[66,3641,3642,3644,3647,3650],{"class":68,"line":178},[66,3643,181],{"class":72},[66,3645,3646],{"class":184}," cp",[66,3648,3649],{"class":184}," /etc/fstab",[66,3651,3652],{"class":184}," /etc/fstab.backup\n",[66,3654,3655],{"class":68,"line":301},[66,3656,305],{"emptyLinePlaceholder":304},[66,3658,3659],{"class":68,"line":308},[66,3660,3661],{"class":174},"# Редактирование файла\n",[66,3663,3664,3666,3668],{"class":68,"line":314},[66,3665,181],{"class":72},[66,3667,2339],{"class":184},[66,3669,3670],{"class":184}," /etc/fstab\n",[20,3672,3673,3674,3676,3677,2275],{},"Найдите строку с проблемным разделом и измените параметр ",[44,3675,3232],{}," на ",[44,3678,3236],{},[57,3680,3682],{"className":3125,"code":3681,"language":3127,"meta":62,"style":62},"# Было (неправильно)\nUUID=xxx / ext4 ro 0 1\n\n# Стало (правильно)\nUUID=xxx / ext4 rw 0 1\n",[44,3683,3684,3689,3693,3697,3702],{"__ignoreMap":62},[66,3685,3686],{"class":68,"line":69},[66,3687,3688],{},"# Было (неправильно)\n",[66,3690,3691],{"class":68,"line":178},[66,3692,3139],{},[66,3694,3695],{"class":68,"line":301},[66,3696,305],{"emptyLinePlaceholder":304},[66,3698,3699],{"class":68,"line":308},[66,3700,3701],{},"# Стало (правильно)\n",[66,3703,3704],{"class":68,"line":314},[66,3705,3706],{},"UUID=xxx / ext4 rw 0 1\n",[20,3708,3709],{},"Также убедитесь, что в параметрах монтирования указаны необходимые опции:",[57,3711,3713],{"className":3125,"code":3712,"language":3127,"meta":62,"style":62},"# Рекомендуемые параметры для корневой файловой системы\nUUID=xxx / ext4 defaults,errors=remount-ro 0 1\n",[44,3714,3715,3720],{"__ignoreMap":62},[66,3716,3717],{"class":68,"line":69},[66,3718,3719],{},"# Рекомендуемые параметры для корневой файловой системы\n",[66,3721,3722],{"class":68,"line":178},[66,3723,3724],{},"UUID=xxx / ext4 defaults,errors=remount-ro 0 1\n",[161,3726,3728],{"id":3727},"способ-4-проверка-и-замена-кабелей-и-разъёмов","Способ 4: Проверка и замена кабелей и разъёмов",[20,3730,3731],{},"Если проблема связана с аппаратными соединениями:",[1075,3733,3734,3737,3740,3743],{},[85,3735,3736],{},"Выключите компьютер",[85,3738,3739],{},"Проверьте подключение SATA/NVMe кабелей",[85,3741,3742],{},"Попробуйте использовать другой кабель",[85,3744,3745],{},"Подключите диск к другому порту на материнской плате",[161,3747,3749],{"id":3748},"способ-5-работа-с-внешними-носителями","Способ 5: Работа с внешними носителями",[20,3751,3752],{},"Для USB-накопителей, SD-карт и внешних дисков:",[57,3754,3756],{"className":59,"code":3755,"language":61,"meta":62,"style":62},"# Проверка статуса защиты от записи\nlsblk -o NAME,RO /dev/sdb\n\n# Попытка перемонтирования\nsudo mount -o remount,rw /dev/sdb1\n\n# Проверка переключателя защиты на носителе\n# (аппаратная защита не может быть отключена программно)\n",[44,3757,3758,3763,3776,3780,3785,3798,3802,3807],{"__ignoreMap":62},[66,3759,3760],{"class":68,"line":69},[66,3761,3762],{"class":174},"# Проверка статуса защиты от записи\n",[66,3764,3765,3768,3770,3773],{"class":68,"line":178},[66,3766,3767],{"class":72},"lsblk",[66,3769,3458],{"class":76},[66,3771,3772],{"class":184}," NAME,RO",[66,3774,3775],{"class":184}," /dev/sdb\n",[66,3777,3778],{"class":68,"line":301},[66,3779,305],{"emptyLinePlaceholder":304},[66,3781,3782],{"class":68,"line":308},[66,3783,3784],{"class":174},"# Попытка перемонтирования\n",[66,3786,3787,3789,3791,3793,3795],{"class":68,"line":314},[66,3788,181],{"class":72},[66,3790,3455],{"class":184},[66,3792,3458],{"class":76},[66,3794,3461],{"class":184},[66,3796,3797],{"class":184}," /dev/sdb1\n",[66,3799,3800],{"class":68,"line":337},[66,3801,305],{"emptyLinePlaceholder":304},[66,3803,3804],{"class":68,"line":342},[66,3805,3806],{"class":174},"# Проверка переключателя защиты на носителе\n",[66,3808,3809],{"class":68,"line":348},[66,3810,3811],{"class":174},"# (аппаратная защита не может быть отключена программно)\n",[36,3813,3815],{"id":3814},"профилактика-проблемы","Профилактика проблемы",[20,3817,3818],{},"Чтобы избежать возникновения ошибки «Read-only file system» в будущем:",[1075,3820,3821,3827,3833,3839,3845,3851],{},[85,3822,3823,3826],{},[24,3824,3825],{},"Регулярно проверяйте состояние дисков"," — используйте S.M.A.R.T.-мониторинг",[85,3828,3829,3832],{},[24,3830,3831],{},"Следите за здоровьем файловой системы"," — проводите периодические проверки",[85,3834,3835,3838],{},[24,3836,3837],{},"Используйте источники бесперебойного питания"," — защита от скачков напряжения",[85,3840,3841,3844],{},[24,3842,3843],{},"Создавайте резервные копии"," — регулярное резервное копирование важных данных",[85,3846,3847,3850],{},[24,3848,3849],{},"Обновляйте систему"," — своевременные обновления исправляют известные ошибки",[85,3852,3853,3856],{},[24,3854,3855],{},"Мониторьте журналы"," — обращайте внимание на предупреждающие сообщения",[36,3858,3860],{"id":3859},"заключение","Заключение",[20,3862,3863],{},"Ошибка «Read-only file system» в Linux — это защитный механизм, который предохраняет данные от дальнейшего повреждения. Хотя она может быть вызвана различными причинами, большинство случаев поддаётся устранению описанными методами.",[20,3865,3866,3867,3870],{},"Важно помнить, что при обнаружении подобной ошибки ",[24,3868,3869],{},"не следует игнорировать проблему",". Попытки продолжить работу могут привести к потере данных или невозможности восстановления файловой системы. Всегда проводите диагностику и при необходимости обращайтесь к специалистам.",[20,3872,3873],{},"Если вы не уверены в своих действиях или данные представляют особую ценность, рекомендуется обратиться к профессиональным услугам по восстановлению данных.",[1525,3875,3876],{},"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 .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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":62,"searchDepth":178,"depth":178,"links":3878},[3879,3880,3887,3892,3899,3900],{"id":3041,"depth":178,"text":3042},{"id":3068,"depth":178,"text":3069,"children":3881},[3882,3883,3884,3885,3886],{"id":3075,"depth":301,"text":3076},{"id":3093,"depth":301,"text":3094},{"id":3114,"depth":301,"text":3115},{"id":3142,"depth":301,"text":3143},{"id":3149,"depth":301,"text":3150},{"id":3158,"depth":178,"text":3159,"children":3888},[3889,3890,3891],{"id":3162,"depth":301,"text":3163},{"id":3240,"depth":301,"text":3241},{"id":3328,"depth":301,"text":3329},{"id":3430,"depth":178,"text":3431,"children":3893},[3894,3895,3896,3897,3898],{"id":3434,"depth":301,"text":3435},{"id":3516,"depth":301,"text":3517},{"id":3622,"depth":301,"text":3623},{"id":3727,"depth":301,"text":3728},{"id":3748,"depth":301,"text":3749},{"id":3814,"depth":178,"text":3815},{"id":3859,"depth":178,"text":3860},"EROFS","2026-02-13 20:57:56","Подробное руководство по устранению ошибки 'Read-only file system' в Linux. Причины возникновения, диагностика и методы исправления.","15-45 мин",[3906,3909,3912],{"question":3907,"answer":3908},"Почему файловая система стала read-only?","Это может произойти из-за ошибок на диске, некорректного монтирования, проблем с драйверами или аппаратных неисправностей. Система автоматически переводит файловую систему в режим только чтения для защиты данных.",{"question":3910,"answer":3911},"Как сохранить данные с read-only файловой системы?","Сначала попробуйте перемонтировать файловую систему в режим чтения/записи. Если это не поможет, загрузитесь с LiveUSB и скопируйте важные данные на внешний носитель.",{"question":3913,"answer":3914},"Опасно ли игнорировать эту ошибку?","Да, игнорировать опасно. Если файловая система перешла в режим read-only из-за ошибок, продолжение работы может привести к потере данных или повреждению файловой системы.",[3916,3919,3922,3925],{"name":3917,"text":3918},"Проверьте текущий статус монтирования","Используйте команду `mount | grep -i '/dev/sd'` или `df -h` для просмотра текущих точек монтирования и их параметров.",{"name":3920,"text":3921},"Попробуйте перемонтировать файловую систему","Выполните `sudo mount -o remount,rw /mount/point` для попытки перемонтирования в режим чтения/записи.",{"name":3923,"text":3924},"Проверьте журнал системы","Посмотрите вывод `dmesg | tail -50` или `journalctl -xe` для поиска сообщений об ошибках файловой системы.",{"name":3926,"text":3927},"Запустите проверку файловой системы","Используйте `sudo fsck -y /dev/sdX` (где X — буква диска) для проверки и исправления ошибок файловой системы.","PT35M",[3930,3931,3932,3933,3127,3934,3935],"read-only file system","только для чтения","linux ошибка","монтирование файловой системы","fsck","erofs",{},[3938,3939,3940],"/errors/linux/permission-denied","/errors/linux/disk-full","/guides/linux/mount-usb-linux",{"title":3019,"description":3903},"errors/linux/read-only-file-system","Ошибка 'Read-only file system' возникает, когда файловая система монтируется в режиме только для чтения, и пользователь не может записывать или изменять файлы.",[1600,3945,3181,3946,3947],"filesystem","storage","troubleshooting","error","HI8SNpzxBcM-ZC_9xjWum-dWvKw4gbquai8YdXjJ4tE",{"id":3951,"title":3952,"appliesTo":3953,"author":11,"body":3958,"canonical":1550,"code":1550,"createdAt":4877,"description":4878,"difficulty":3010,"draft":1554,"estimatedTime":4879,"extension":1556,"faq":4880,"howToSteps":4893,"howToTotalTime":2991,"image":1550,"keywords":4909,"locale":1597,"meta":4920,"navigation":304,"path":1604,"platform":1600,"related":4921,"section":3008,"seo":4924,"severity":4925,"stem":4926,"summary":4927,"tags":4928,"twitterCreator":1550,"twitterSite":1550,"type":1616,"updatedAt":4877,"__hash__":4932},"content_ru/guides/linux/log-rotation.md","Настройка ротации логов в Linux: пошаговое руководство",[3954,3955,3956,3957],"Ubuntu 22.04+","Debian 11+","CentOS 7+/RHEL 8+","Fedora 35+",{"type":13,"value":3959,"toc":4863},[3960,3962,3975,3977,3980,4020,4022,4026,4036,4133,4138,4185,4192,4196,4209,4375,4393,4397,4400,4506,4510,4535,4545,4549,4552,4609,4611,4614,4657,4659,4794,4796,4800,4854,4860],[36,3961,1827],{"id":1826},[20,3963,3964,3965,3967,3968,3971,3972,3974],{},"Логирование — краеугольный камень диагностики в Linux. Однако без контроля файлы логов могут бесконечно расти, заполняя раздел ",[44,3966,50],{}," и приводя к сбоям служб. ",[24,3969,3970],{},"Ротация логов"," — это автоматизированный процесс архивации, сжатия и удаления устаревших записей. Использование стандартной утилиты ",[44,3973,724],{}," решает проблему с минимальными усилиями, экономя место и сохраняя историю событий в управляемом виде. После выполнения этого гайда вы получите работающую систему ротации как для системных логов, так и для логов ваших приложений.",[36,3976,1845],{"id":1844},[20,3978,3979],{},"Перед началом убедитесь, что:",[1075,3981,3982,3988,3996,4014],{},[85,3983,3984,3985,55],{},"У вас есть доступ к учетной записи с ",[24,3986,3987],{},"правами sudo",[85,3989,3990,3991,51,3993,3995],{},"Дистрибутив основан на ",[24,3992,2179],{},[24,3994,2208],{}," (конфигурация универсальна, но пути могут незначительно отличаться).",[85,3997,3998,3999,4001,4002],{},"Установлена утилита ",[44,4000,724],{}," (обычно есть по умолчанию). Проверить можно командой:\n",[57,4003,4005],{"className":59,"code":4004,"language":61,"meta":62,"style":62},"logrotate --version\n",[44,4006,4007],{"__ignoreMap":62},[66,4008,4009,4011],{"class":68,"line":69},[66,4010,724],{"class":72},[66,4012,4013],{"class":76}," --version\n",[85,4015,4016,4017,136],{},"Вы знаете пути к лог-файлам, которые необходимо ротировать (например, ",[44,4018,4019],{},"/var/log/nginx/access.log",[36,4021,1888],{"id":1887},[161,4023,4025],{"id":4024},"шаг-1-изучение-стандартной-конфигурации","Шаг 1: Изучение стандартной конфигурации",[20,4027,4028,4029,4031,4032,4035],{},"Главный конфигурационный файл — ",[44,4030,728],{},". Откройте его в редакторе (",[44,4033,4034],{},"sudo nano /etc/logrotate.conf","). Типичное содержимое выглядит так:",[57,4037,4041],{"className":4038,"code":4039,"language":4040,"meta":62,"style":62},"language-ini shiki shiki-themes github-light github-dark","# 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","ini",[44,4042,4043,4048,4053,4058,4062,4067,4072,4076,4081,4086,4090,4095,4100,4104,4110,4116,4121,4127],{"__ignoreMap":62},[66,4044,4045],{"class":68,"line":69},[66,4046,4047],{},"# see \"man logrotate\" for details\n",[66,4049,4050],{"class":68,"line":178},[66,4051,4052],{},"# rotate log files weekly\n",[66,4054,4055],{"class":68,"line":301},[66,4056,4057],{},"weekly\n",[66,4059,4060],{"class":68,"line":308},[66,4061,305],{"emptyLinePlaceholder":304},[66,4063,4064],{"class":68,"line":314},[66,4065,4066],{},"# keep 4 weeks worth of backlogs\n",[66,4068,4069],{"class":68,"line":337},[66,4070,4071],{},"rotate 4\n",[66,4073,4074],{"class":68,"line":342},[66,4075,305],{"emptyLinePlaceholder":304},[66,4077,4078],{"class":68,"line":348},[66,4079,4080],{},"# create new (empty) log files after rotating old ones\n",[66,4082,4083],{"class":68,"line":478},[66,4084,4085],{},"create\n",[66,4087,4088],{"class":68,"line":484},[66,4089,305],{"emptyLinePlaceholder":304},[66,4091,4092],{"class":68,"line":2471},[66,4093,4094],{},"# use date as a suffix of the rotated file\n",[66,4096,4097],{"class":68,"line":2500},[66,4098,4099],{},"#dateext\n",[66,4101,4102],{"class":68,"line":2518},[66,4103,305],{"emptyLinePlaceholder":304},[66,4105,4107],{"class":68,"line":4106},14,[66,4108,4109],{},"# uncomment this if you want your log files compressed\n",[66,4111,4113],{"class":68,"line":4112},15,[66,4114,4115],{},"compress\n",[66,4117,4119],{"class":68,"line":4118},16,[66,4120,305],{"emptyLinePlaceholder":304},[66,4122,4124],{"class":68,"line":4123},17,[66,4125,4126],{},"# RPM packages drop log rotation information into this directory\n",[66,4128,4130],{"class":68,"line":4129},18,[66,4131,4132],{},"include /etc/logrotate.d\n",[20,4134,4135],{},[24,4136,4137],{},"Ключевые параметры:",[82,4139,4140,4157,4162,4173,4179],{},[85,4141,4142,4145,4146,888,4149,888,4151,888,4154,136],{},[44,4143,4144],{},"weekly"," — частота ротации (",[44,4147,4148],{},"daily",[44,4150,4144],{},[44,4152,4153],{},"monthly",[44,4155,4156],{},"yearly",[85,4158,4159,4161],{},[44,4160,1343],{}," — хранить 4 архивированных файла, более старые будут удалены.",[85,4163,4164,4166,4167,4169,4170,136],{},[44,4165,1339],{}," — сжимать ротированные логи с помощью ",[44,4168,720],{}," (файлы получат расширение ",[44,4171,4172],{},".gz",[85,4174,4175,4178],{},[44,4176,4177],{},"create"," — создавать новый пустой лог-файл после ротации.",[85,4180,4181,4184],{},[44,4182,4183],{},"include /etc/logrotate.d"," — подключать дополнительные конфигурации из этой директории.",[20,4186,4187,4188,4191],{},"Это ",[24,4189,4190],{},"глобальные настройки по умолчанию",". Для конкретных логов они могут переопределяться.",[161,4193,4195],{"id":4194},"шаг-2-создание-конфигурации-для-вашего-приложения","Шаг 2: Создание конфигурации для вашего приложения",[20,4197,4198,4199,4201,4202,4205,4206,55],{},"Лучшая практика — создавать отдельные конфиги в ",[44,4200,732],{},". Например, для веб-сервера Nginx, который пишет логи в ",[44,4203,4204],{},"/var/log/nginx/",", или для кастомного приложения ",[44,4207,4208],{},"myapp",[1075,4210,4211,4228],{},[85,4212,4213,4214],{},"Создайте файл конфигурации:\n",[57,4215,4217],{"className":59,"code":4216,"language":61,"meta":62,"style":62},"sudo nano /etc/logrotate.d/myapp\n",[44,4218,4219],{"__ignoreMap":62},[66,4220,4221,4223,4225],{"class":68,"line":69},[66,4222,181],{"class":72},[66,4224,2339],{"class":184},[66,4226,4227],{"class":184}," /etc/logrotate.d/myapp\n",[85,4229,4230,4231,2180,4234,4304,4307],{},"Добавьте правило. Ниже пример для логов приложения в ",[44,4232,4233],{},"/var/log/myapp/",[57,4235,4237],{"className":4038,"code":4236,"language":4040,"meta":62,"style":62},"/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",[44,4238,4239,4244,4249,4254,4259,4264,4269,4274,4279,4284,4289,4294,4299],{"__ignoreMap":62},[66,4240,4241],{"class":68,"line":69},[66,4242,4243],{},"/var/log/myapp/*.log {\n",[66,4245,4246],{"class":68,"line":178},[66,4247,4248],{},"    daily\n",[66,4250,4251],{"class":68,"line":301},[66,4252,4253],{},"    missingok\n",[66,4255,4256],{"class":68,"line":308},[66,4257,4258],{},"    rotate 14\n",[66,4260,4261],{"class":68,"line":314},[66,4262,4263],{},"    compress\n",[66,4265,4266],{"class":68,"line":337},[66,4267,4268],{},"    delaycompress\n",[66,4270,4271],{"class":68,"line":342},[66,4272,4273],{},"    notifempty\n",[66,4275,4276],{"class":68,"line":348},[66,4277,4278],{},"    create 644 myappuser myappgroup\n",[66,4280,4281],{"class":68,"line":478},[66,4282,4283],{},"    sharedscripts\n",[66,4285,4286],{"class":68,"line":484},[66,4287,4288],{},"    postrotate\n",[66,4290,4291],{"class":68,"line":2471},[66,4292,4293],{},"        systemctl reload myapp.service > /dev/null 2>&1 || true\n",[66,4295,4296],{"class":68,"line":2500},[66,4297,4298],{},"    endscript\n",[66,4300,4301],{"class":68,"line":2518},[66,4302,4303],{},"}\n",[24,4305,4306],{},"Разбор блока:",[82,4308,4309,4315,4320,4326,4332,4338,4344,4350,4363],{},[85,4310,4311,4314],{},[44,4312,4313],{},"/var/log/myapp/*.log"," — путь к файлам, которые нужно ротировать (поддерживаются glob-шаблоны).",[85,4316,4317,4319],{},[44,4318,4148],{}," — ротировать каждый день.",[85,4321,4322,4325],{},[44,4323,4324],{},"missingok"," — не выдавать ошибку, если файл лога отсутствует.",[85,4327,4328,4331],{},[44,4329,4330],{},"rotate 14"," — хранить 14 архивов (примерно две недели).",[85,4333,4334,4337],{},[44,4335,4336],{},"delaycompress"," — сжимать не сразу, а при следующей ротации (чтобы процессы, держащие файл, могли его закрыть).",[85,4339,4340,4343],{},[44,4341,4342],{},"notifempty"," — не ротировать пустые файлы.",[85,4345,4346,4349],{},[44,4347,4348],{},"create 644 myappuser myappgroup"," — после ротации создать новый файл с указанными правами и владельцем.",[85,4351,4352,4355,4356,46,4359,4362],{},[44,4353,4354],{},"sharedscripts"," — выполнять скрипты ",[44,4357,4358],{},"postrotate",[44,4360,4361],{},"prerotate"," только один раз, а не для каждого файла.",[85,4364,4365,4368,4369,4371,4372],{},[44,4366,4367],{},"postrotate ... endscript"," — команда, выполняемая после ротации. Здесь мы мягко перезагружаем службу ",[44,4370,4208],{},", чтобы она начала писать в новый файл. ",[24,4373,4374],{},"Это критично для многих демонов!",[138,4376,4377],{},[20,4378,709,4379,4381,4382,4385,4386,4388,4389,4392],{},[24,4380,712],{}," Для логов, которые активно пишутся (например, ",[44,4383,4384],{},"access.log","), всегда используйте ",[44,4387,4358],{}," с перезагрузкой/сигналом службы (",[44,4390,4391],{},"kill -USR1 $(cat /var/run/nginx.pid)","). Для статических файлов скрипты не нужны.",[161,4394,4396],{"id":4395},"шаг-3-проверка-синтаксиса-и-тестовый-запуск","Шаг 3: Проверка синтаксиса и тестовый запуск",[20,4398,4399],{},"Не ждите следующего ежедневного cron-запуска. Проверьте конфигурацию:",[1075,4401,4402,4439,4470],{},[85,4403,4404,4407,4424,1919,4427,4430,4431,4434,4435,4438],{},[24,4405,4406],{},"Тестовый прогон (dry-run):",[57,4408,4410],{"className":59,"code":4409,"language":61,"meta":62,"style":62},"sudo logrotate -d /etc/logrotate.conf\n",[44,4411,4412],{"__ignoreMap":62},[66,4413,4414,4416,4419,4421],{"class":68,"line":69},[66,4415,181],{"class":72},[66,4417,4418],{"class":184}," logrotate",[66,4420,1233],{"class":76},[66,4422,4423],{"class":184}," /etc/logrotate.conf\n",[4425,4426],"br",{},[44,4428,4429],{},"-d"," включает режим отладки. Вы увидите, какие файлы будут ротированы и какие действия планируются, но ",[24,4432,4433],{},"никакие изменения не будут применены",". Ищите в выводе строки ",[44,4436,4437],{},"running postrotate script"," и пути к вашим логам.",[85,4440,4441,4444,4445,4461,1919,4463,4466,4467,4469],{},[24,4442,4443],{},"Принудительный запуск:","\nЕсли тестовый прогон прошел успешно, выполните реальную ротацию:",[57,4446,4448],{"className":59,"code":4447,"language":61,"meta":62,"style":62},"sudo logrotate -f /etc/logrotate.conf\n",[44,4449,4450],{"__ignoreMap":62},[66,4451,4452,4454,4456,4459],{"class":68,"line":69},[66,4453,181],{"class":72},[66,4455,4418],{"class":184},[66,4457,4458],{"class":76}," -f",[66,4460,4423],{"class":184},[4425,4462],{},[44,4464,4465],{},"-f"," (force) заставляет ",[44,4468,724],{}," выполнить ротацию независимо от времени, прошедшего с последнего запуска.",[85,4471,4472,4475],{},[24,4473,4474],{},"Проверка результата:",[82,4476,4477,4491,4500],{},[85,4478,4479,4480,4482,4483,4486,4487,4490],{},"В директории логов (",[44,4481,4233],{},") должны появиться сжатые архивы вида ",[44,4484,4485],{},"myapp.log.1.gz"," (последняя ротация) и ",[44,4488,4489],{},"myapp.log.2.gz"," и т.д.",[85,4492,4493,4494,4497,4498,136],{},"Текущий активный лог (",[44,4495,4496],{},"myapp.log",") должен быть вновь создан (если использовали ",[44,4499,4177],{},[85,4501,4502,4503,55],{},"Проверьте время модификации файлов: ",[44,4504,4505],{},"ls -laht /var/log/myapp/",[161,4507,4509],{"id":4508},"шаг-4-расписание-cron","Шаг 4: Расписание (cron)",[20,4511,4512,4513,4515,4516,4519,4520,4523,4524,888,4527,4530,4531,4534],{},"По умолчанию ",[44,4514,724],{}," запускается из системного cron ",[24,4517,4518],{},"ежедневно"," через скрипт в ",[44,4521,4522],{},"/etc/cron.daily/logrotate",". Изменить частоту можно, создав символическую ссылку в ",[44,4525,4526],{},"/etc/cron.hourly/",[44,4528,4529],{},"/etc/cron.weekly/"," или добавив свою задачу в ",[44,4532,4533],{},"/etc/crontab",". Однако обычно ежедневного запуска достаточно.",[138,4536,4537],{},[20,4538,142,4539,4541,4542,4544],{},[24,4540,145],{}," Не запускайте ",[44,4543,724],{}," слишком часто (например, каждый час) для логов с низкой интенсивностью. Это может привести к ротации пустых файлов и накоплению множества мелких архивов.",[161,4546,4548],{"id":4547},"шаг-5-мониторинг-и-отладка","Шаг 5: Мониторинг и отладка",[20,4550,4551],{},"Если ротация не работает:",[1075,4553,4554,4567,4574,4588],{},[85,4555,4556,4557,4560,4561,4563,4564,4566],{},"Проверьте ",[24,4558,4559],{},"права доступа"," к лог-файлам и директории ",[44,4562,732],{},". Пользователь ",[44,4565,1621],{}," должен иметь доступ.",[85,4568,4569,4570,4573],{},"Убедитесь, что в конфиге нет ",[24,4571,4572],{},"синтаксических ошибок"," (фигурные скобки должны быть сбалансированы).",[85,4575,4576,4577,4580,4581,4584,4585,4587],{},"Проверьте, ",[24,4578,4579],{},"не блокирует ли файл"," какая-либо программа. Иногда помогает параметр ",[44,4582,4583],{},"copytruncate"," (копирует файл и обнуляет оригинал, но может привести к потере записей во время копирования). Используйте его только если ",[44,4586,4358],{}," недоступен.",[85,4589,4590,4591,4596,4597,1419,4600,51,4603,4606,4607,55],{},"Посмотрите ",[24,4592,4593,4594],{},"логи самого ",[44,4595,724],{},". Они обычно пишутся в ",[44,4598,4599],{},"syslog",[44,4601,4602],{},"/var/log/syslog",[44,4604,4605],{},"/var/log/messages","). Ищите записи с тегом ",[44,4608,724],{},[36,4610,2698],{"id":2697},[20,4612,4613],{},"После выполнения шагов 2-3:",[1075,4615,4616,4624,4633,4650],{},[85,4617,4618,4619,55],{},"Убедитесь, что в целевой директории логов появились ",[24,4620,4621,4622],{},"архивированные файлы с расширением ",[44,4623,4172],{},[85,4625,4626,4629,4630,4632],{},[24,4627,4628],{},"Размер"," текущего лог-файла (",[44,4631,4496],{},") должен быть близок к нулю (если приложение продолжает писать) или равен размеру записей, появившихся с момента последней ротации.",[85,4634,4635,4636,888,4639,4642,4643,4646,4647,55],{},"Количество ротированных файлов (",[44,4637,4638],{},".log.1.gz",[44,4640,4641],{},".log.2.gz","...) ",[24,4644,4645],{},"не превышает"," значение ",[44,4648,4649],{},"rotate N",[85,4651,4652,4653,4656],{},"Приложение продолжает корректно писать в ",[24,4654,4655],{},"новый"," лог-файл (проверьте, добавляются ли новые записи).",[36,4658,2757],{"id":2756},[82,4660,4661,4683,4717,4747,4773],{},[85,4662,4663,4666],{},[24,4664,4665],{},"Ошибка \"error: error opening /var/log/myapp/*.log: No such file or directory\"",[82,4667,4668,4674],{},[85,4669,4670,4673],{},[24,4671,4672],{},"Причина:"," Файл лога не существует на момент ротации.",[85,4675,4676,4679,4680,4682],{},[24,4677,4678],{},"Решение:"," Добавьте параметр ",[44,4681,4324],{}," в конфигурационный блок. Это безопасно, если лог может создаваться приложением динамически.",[85,4684,4685,4688],{},[24,4686,4687],{},"Логи продолжают бесконечно расти, ротация не происходит",[82,4689,4690,4697],{},[85,4691,4692,1009,4694,4696],{},[24,4693,4672],{},[44,4695,724],{}," не запускается по cron, или конфигурационный файл имеет неправильные права/имя.",[85,4698,4699,4701,4702,4704,4705,4708,4709,4712,4713,4716],{},[24,4700,4678],{}," Проверьте, что файл в ",[44,4703,732],{}," имеет расширение ",[44,4706,4707],{},".conf"," (не ",[44,4710,4711],{},".txt","). Запустите ",[44,4714,4715],{},"sudo logrotate -f /etc/logrotate.conf"," вручную и проверьте вывод.",[85,4718,4719,4722],{},[24,4720,4721],{},"Приложение перестает писать в лог после ротации",[82,4723,4724,4729],{},[85,4725,4726,4728],{},[24,4727,4672],{}," Дескриптор файла у процесса приложения остался открытым на старом (удаленном) файле.",[85,4730,4731,4733,4734,4736,4737,888,4740,4743,4744,4746],{},[24,4732,4678],{}," Обязательно используйте блок ",[44,4735,4358],{}," с командой, заставляющей приложение переоткрыть файл лога (например, ",[44,4738,4739],{},"systemctl reload",[44,4741,4742],{},"kill -USR1"," или аналогичная команда для вашего ПО). Избегайте ",[44,4745,4583],{}," для важных логов.",[85,4748,4749,4752],{},[24,4750,4751],{},"Нет места на диске после ротации (из-за сжатия)",[82,4753,4754,4762],{},[85,4755,4756,4758,4759,4761],{},[24,4757,4672],{}," Процесс сжатия (",[44,4760,720],{},") создает временную копию файла, требуя свободного места, равного размеру исходного лога.",[85,4763,4764,4766,4767,4769,4770,4772],{},[24,4765,4678],{}," Убедитесь, что на разделе ",[44,4768,50],{}," достаточно свободного места (хотя бы размер самого самого большого лога). В крайнем случае временно отключите ",[44,4771,1339],{}," в конфиге.",[85,4774,4775,4778],{},[24,4776,4777],{},"Ротируются не те файлы",[82,4779,4780,4785],{},[85,4781,4782,4784],{},[24,4783,4672],{}," Неверный glob-шаблон в пути.",[85,4786,4787,4789,4790,4793],{},[24,4788,4678],{}," Проверьте шаблон командой ",[44,4791,4792],{},"ls /var/log/myapp/*.log",". Убедитесь, что он соответствует нужным файлам и не захватывает лишние.",[389,4795],{},[36,4797,4799],{"id":4798},"продвинутые-настройки-опционально","Продвинутые настройки (опционально)",[82,4801,4802,4813,4827,4835,4843],{},[85,4803,4804,4809,4810,4812],{},[24,4805,4806],{},[44,4807,4808],{},"size 100M"," — ротировать не по времени, а когда файл достигнет указанного размера. Можно комбинировать с ",[44,4811,4148],{}," (ротация будет, если файл большой ИЛИ наступил день).",[85,4814,4815,4820,4821,4823,4824,136],{},[24,4816,4817],{},[44,4818,4819],{},"maxsize 500M"," — ротировать, если файл больше этого размера, даже если не наступил период (например, ",[44,4822,4148],{}," + ",[44,4825,4826],{},"maxsize",[85,4828,4829,4834],{},[24,4830,4831],{},[44,4832,4833],{},"olddir /var/log/myapp/archived"," — перемещать ротированные файлы в указанную поддиректорию (должна существовать).",[85,4836,4837,4842],{},[24,4838,4839],{},[44,4840,4841],{},"mail root"," — отправлять ротированные логи по почте (требует настроенный MTA).",[85,4844,4845,4850,4851,4853],{},[24,4846,4847],{},[44,4848,4849],{},"su root myappuser"," — выполнять ротацию от имени другого пользователя (полезно, если ",[44,4852,724],{}," запускается от root, а логи принадлежат другому юзеру).",[20,4855,4856,4857,136],{},"Эти параметры добавляются в блок конфигурации (например, ",[44,4858,4859],{},"/etc/logrotate.d/myapp",[1525,4861,4862],{},"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":62,"searchDepth":178,"depth":178,"links":4864},[4865,4866,4867,4874,4875,4876],{"id":1826,"depth":178,"text":1827},{"id":1844,"depth":178,"text":1845},{"id":1887,"depth":178,"text":1888,"children":4868},[4869,4870,4871,4872,4873],{"id":4024,"depth":301,"text":4025},{"id":4194,"depth":301,"text":4195},{"id":4395,"depth":301,"text":4396},{"id":4508,"depth":301,"text":4509},{"id":4547,"depth":301,"text":4548},{"id":2697,"depth":178,"text":2698},{"id":2756,"depth":178,"text":2757},{"id":4798,"depth":178,"text":4799},"2026-02-15 16:19:42","Узнайте, как настроить автоматическую ротацию логов через logrotate. Пошаговая инструкция с примерами конфигурации для Ubuntu/CentOS. Экономьте место и следите за логами!","15-25 мин",[4881,4884,4887,4890],{"question":4882,"answer":4883},"Что такое ротация логов и зачем она нужна?","Ротация логов — это процесс архивации, сжатия и удаления старых файлов логов. Она нужна, чтобы предотвратить заполнение диска, упростить анализ и соответствовать политикам хранения.",{"question":4885,"answer":4886},"Можно ли настроить ротацию для своего приложения?","Да. Создайте файл конфигурации в `/etc/logrotate.d/` или добавьте правило в основной `/etc/logrotate.conf`. Укажите путь к логам вашего приложения и параметры ротации.",{"question":4888,"answer":4889},"Включена ли ротация по умолчанию в Linux?","Да, в большинстве дистрибутивов утилита `logrotate` установлена и базовые конфигурации для системных логов (`/var/log/syslog`, `/var/log/auth.log` и др.) уже существуют.",{"question":4891,"answer":4892},"Как проверить, что logrotate работает корректно?","Запустите `sudo logrotate -d /etc/logrotate.conf` для тестового прогона (dry-run). Также проверьте даты модификации файлов в `/var/log/` и наличие сжатых архивов `.gz`.",[4894,4897,4900,4903,4906],{"name":4895,"text":4896},"Проверка наличия и версии logrotate","Убедитесь, что утилита установлена. Выполните `logrotate --version`. В современных дистрибутивах она есть по умолчанию.",{"name":4898,"text":4899},"Изучение базовой конфигурации","Откройте основной конфиг `/etc/logrotate.conf`. Обратите внимание на глобальные параметры (`weekly`, `rotate 4`, `compress`).",{"name":4901,"text":4902},"Создание конфигурации для кастомного лога","Создайте файл `/etc/logrotate.d/myapp` с правилом для логов вашего приложения, например `/var/log/myapp/*.log`. Настройте частоту (`daily`), количество копий (`rotate 7`) и сжатие (`compress`).",{"name":4904,"text":4905},"Принудительный тестовый прогон","Выполните `sudo logrotate -f /etc/logrotate.conf` для немедленного запуска ротации, даже если по расписанию она не должна была сработать.",{"name":4907,"text":4908},"Настройка cron (если нужно изменить расписание)","По умолчанию logrotate вызывается из `/etc/cron.daily/logrotate`. Чтобы изменить частоту, отредактируйте cron-задачу или настройте `prerotate`/`postrotate` скрипты.",[4910,4911,4912,4913,4914,4915,4916,4917,4918,4919],"ротация логов linux","logrotate конфигурация","как настроить ротацию логов","удаление старых логов ubuntu","logrotate примеры","автоматическая ротация логов centos","logrotate compression","ротация syslog","ошибка диск переполнен логи","logrotate tutorial",{},[4922,4923,3939],"/guides/linux/disk-cleanup","/guides/linux/cron-jobs",{"title":3952,"description":4878},"low","guides/linux/log-rotation","Это руководство поможет вам настроить автоматическую ротацию логов в Linux с помощью утилиты logrotate. Вы научитесь создавать конфигурационные файлы, настраивать частоту ротации, сжатие и хранение, что предотвратит заполнение диска старыми логами.",[4929,724,61,4599,4930,4931],"администрирование linux","дисковое пространство","автоматизация","wqLrNEtvkWGafnOc-mQlMzycKhuFzE437cVwEljpWjk"]