[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/monitor-disk-usage":3,"mdc--18bf3b-key":1046,"mdc-z3a75-key":1071,"mdc--608tms-key":1088,"mdc--r7k5uc-key":1112,"mdc-h77824-key":1120,"mdc-h2y46q-key":1158,"mdc-xltfmh-key":1203,"mdc-lyk25v-key":1234,"mdc-8hccmr-key":1258,"mdc--jcve41-key":1282,"related-/guides/linux/clean-disk-space,/errors/linux/no-space-left-on-device,/guides/linux/automate-disk-cleanup":1299},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":977,"code":977,"createdAt":978,"description":979,"difficulty":980,"draft":981,"estimatedTime":982,"extension":983,"faq":984,"howToSteps":997,"howToTotalTime":1016,"image":977,"keywords":1017,"locale":1026,"meta":1027,"navigation":225,"path":1028,"platform":1029,"related":1030,"section":1034,"seo":1035,"severity":977,"stem":1036,"summary":1037,"tags":1038,"twitterCreator":977,"twitterSite":977,"type":1044,"updatedAt":978,"__hash__":1045},"content_ru/guides/linux/monitor-disk-usage.md","Мониторинг дискового пространства в Linux: команды и практика",[7,8,9,10],"Ubuntu 20.04+","Debian 11+","CentOS 8+/RHEL 8+","Fedora 35+","FixPedia Team",{"type":13,"value":14,"toc":963},"minimark",[15,20,33,37,40,95,98,102,112,133,138,146,151,169,176,189,199,280,285,305,309,315,322,329,335,409,414,451,460,464,467,591,597,625,629,644,688,698,702,708,737,741,774,784,788,806,809,823,827,959],[16,17,19],"h2",{"id":18},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,22,23,24,28,29,32],"p",{},"Постоянный мониторинг дискового пространства — критически важная задача для любого системного администратора или разработчика, работающего с серверами. Заполнение диска приводит к остановке служб, ошибкам записи логов и полной неработоспособности системы. Это руководство поможет вам не только ",[25,26,27],"strong",{},"диагностировать"," проблему, но и ",[25,30,31],{},"предотвратить"," её, освоив основные инструменты Linux для анализа использования диска на уровне файлов и каталогов. Вы научитесь быстро находить «пожирателей» места и принимать обоснованные решения по очистке.",[16,34,36],{"id":35},"требования-подготовка","Требования / Подготовка",[21,38,39],{},"Перед началом убедитесь, что:",[41,42,43,47,74,85],"ol",{},[44,45,46],"li",{},"У вас есть доступ к терминалу Linux (через SSH или локально).",[44,48,49,50,53,54,58,59,58,62,65,66,69,70,73],{},"У вас есть права ",[25,51,52],{},"sudo"," (администратора) для анализа системных каталогов (",[55,56,57],"code",{},"/var",", ",[55,60,61],{},"/home",[55,63,64],{},"/usr",") и использования ",[55,67,68],{},"ncdu","/",[55,71,72],{},"lsof",".",[44,75,76,77,80,81,84],{},"Дистрибутив основан на ",[25,78,79],{},"Debian/Ubuntu"," или ",[25,82,83],{},"RHEL/CentOS/Fedora"," (команды универсальны, но названия пакетов могут отличаться).",[44,86,87,88,58,90,58,92,94],{},"Вы знаете, какой именно раздел (",[55,89,69],{},[55,91,61],{},[55,93,57],{},") заполнился. Если нет — начните с первого шага.",[96,97],"in-article-ad",{},[16,99,101],{"id":100},"шаг-1-быстрый-обзор-состояния-всех-разделов","Шаг 1: быстрый обзор состояния всех разделов",[21,103,104,105,108,109,73],{},"Первым делом получите общую картину. Команда ",[55,106,107],{},"df"," (disk free) показывает использование ",[25,110,111],{},"файловых систем/разделов",[113,114,119],"pre",{"className":115,"code":116,"language":117,"meta":118,"style":118},"language-bash shiki shiki-themes github-light github-dark","df -h\n","bash","",[55,120,121],{"__ignoreMap":118},[122,123,126,129],"span",{"class":124,"line":125},"line",1,[122,127,107],{"class":128},"sScJk",[122,130,132],{"class":131},"sj4cs"," -h\n",[21,134,135],{},[25,136,137],{},"Пример вывода:",[113,139,144],{"className":140,"code":142,"language":143},[141],"language-text","Файл.система  Размер  Исп效益  Доступно Исп% Исп.на  Примонтировано в\n/dev/sda1        50G    45G     3.1G  94%   /        \n/dev/sda2       200G    150G     45G   77%   /home    \n/dev/sda3        20G     18G    1.5G   93%   /var\n","text",[55,145,142],{"__ignoreMap":118},[21,147,148],{},[25,149,150],{},"Что смотреть:",[152,153,154,163],"ul",{},[44,155,156,159,160,73],{},[55,157,158],{},"Исп%"," — процент использования. Целевые кандидаты на очистку — разделы с ",[25,161,162],{},">85%",[44,164,165,168],{},[55,166,167],{},"Примонтировано в"," — точка монтирования. Именно в неё нужно «проваливаться» для детального анализа.",[16,170,172,173],{"id":171},"шаг-2-детальный-анализ-проблемного-раздела-с-du","Шаг 2: детальный анализ проблемного раздела с ",[55,174,175],{},"du",[21,177,178,179,181,182,185,186,188],{},"Команда ",[55,180,175],{}," (disk usage) оценивает использование ",[25,183,184],{},"каталогов",". Она медленнее ",[55,187,107],{},", но даёт детализацию.",[21,190,191,194,195,198],{},[25,192,193],{},"Правило:"," Анализируйте ",[25,196,197],{},"снизу вверх",". Сначала обзорка верхнего уровня, затем углубление.",[113,200,202],{"className":115,"code":201,"language":117,"meta":118,"style":118},"# 1. Перейдите в корень проблемного раздела (например, /var)\ncd /var\n\n# 2. Покажите размер каждого элемента в текущей директории в читаемом виде (-h)\n#    Сортировка по убыванию размера (-r) и вывод только топ-20\nsudo du -sh * 2>/dev/null | sort -rh | head -n 20\n",[55,203,204,210,220,227,233,239],{"__ignoreMap":118},[122,205,206],{"class":124,"line":125},[122,207,209],{"class":208},"sJ8bj","# 1. Перейдите в корень проблемного раздела (например, /var)\n",[122,211,213,216],{"class":124,"line":212},2,[122,214,215],{"class":131},"cd",[122,217,219],{"class":218},"sZZnC"," /var\n",[122,221,223],{"class":124,"line":222},3,[122,224,226],{"emptyLinePlaceholder":225},true,"\n",[122,228,230],{"class":124,"line":229},4,[122,231,232],{"class":208},"# 2. Покажите размер каждого элемента в текущей директории в читаемом виде (-h)\n",[122,234,236],{"class":124,"line":235},5,[122,237,238],{"class":208},"#    Сортировка по убыванию размера (-r) и вывод только топ-20\n",[122,240,242,244,247,250,253,257,260,263,266,269,271,274,277],{"class":124,"line":241},6,[122,243,52],{"class":128},[122,245,246],{"class":218}," du",[122,248,249],{"class":131}," -sh",[122,251,252],{"class":131}," *",[122,254,256],{"class":255},"szBVR"," 2>",[122,258,259],{"class":218},"/dev/null",[122,261,262],{"class":255}," |",[122,264,265],{"class":128}," sort",[122,267,268],{"class":131}," -rh",[122,270,262],{"class":255},[122,272,273],{"class":128}," head",[122,275,276],{"class":131}," -n",[122,278,279],{"class":131}," 20\n",[21,281,282],{},[25,283,284],{},"Ключевые флаги:",[152,286,287,293,299],{},[44,288,289,292],{},[55,290,291],{},"-s"," — суммарный размер для каждого аргумента.",[44,294,295,298],{},[55,296,297],{},"-h"," — человеко-читаемый (K, M, G).",[44,300,301,304],{},[55,302,303],{},"2>/dev/null"," — подавление ошибок «Permission denied».",[21,306,307],{},[25,308,137],{},[113,310,313],{"className":311,"code":312,"language":143},[141],"4.2G    log\n3.8G    cache\n1.2G    lib\n...\n",[55,314,312],{"__ignoreMap":118},[21,316,317,318,321],{},"Вы видите, что ",[55,319,320],{},"/var/log"," — главный «пожиратель». Теперь нужно углубиться в него.",[16,323,325,326,328],{"id":324},"шаг-3-интерактивный-анализ-с-ncdu-рекомендуется","Шаг 3: интерактивный анализ с ",[55,327,68],{}," (рекомендуется)",[21,330,331,332,334],{},"Для удобства установите ",[25,333,68],{}," (NCurses Disk Usage). Это интерактивный текстовый браузер использования диска.",[113,336,338],{"className":115,"code":337,"language":117,"meta":118,"style":118},"# Установка (Debian/Ubuntu)\nsudo apt update && sudo apt install ncdu\n\n# Установка (RHEL/CentOS 8+)\nsudo dnf install ncdu\n\n# Запуск для анализа раздела /var\nsudo ncdu /var\n",[55,339,340,345,369,373,378,389,393,399],{"__ignoreMap":118},[122,341,342],{"class":124,"line":125},[122,343,344],{"class":208},"# Установка (Debian/Ubuntu)\n",[122,346,347,349,352,355,359,361,363,366],{"class":124,"line":212},[122,348,52],{"class":128},[122,350,351],{"class":218}," apt",[122,353,354],{"class":218}," update",[122,356,358],{"class":357},"sVt8B"," && ",[122,360,52],{"class":128},[122,362,351],{"class":218},[122,364,365],{"class":218}," install",[122,367,368],{"class":218}," ncdu\n",[122,370,371],{"class":124,"line":222},[122,372,226],{"emptyLinePlaceholder":225},[122,374,375],{"class":124,"line":229},[122,376,377],{"class":208},"# Установка (RHEL/CentOS 8+)\n",[122,379,380,382,385,387],{"class":124,"line":235},[122,381,52],{"class":128},[122,383,384],{"class":218}," dnf",[122,386,365],{"class":218},[122,388,368],{"class":218},[122,390,391],{"class":124,"line":241},[122,392,226],{"emptyLinePlaceholder":225},[122,394,396],{"class":124,"line":395},7,[122,397,398],{"class":208},"# Запуск для анализа раздела /var\n",[122,400,402,404,407],{"class":124,"line":401},8,[122,403,52],{"class":128},[122,405,406],{"class":218}," ncdu",[122,408,219],{"class":218},[21,410,411],{},[25,412,413],{},"Как работать в ncdu:",[152,415,416,426,432,438,444],{},[44,417,418,419,69,422,425],{},"Стрелки ",[55,420,421],{},"↑",[55,423,424],{},"↓"," — навигация.",[44,427,428,431],{},[55,429,430],{},"Enter"," — войти в каталог.",[44,433,434,437],{},[55,435,436],{},"d"," — удалить выбранный файл/каталог (будет запрос подтверждения!).",[44,439,440,443],{},[55,441,442],{},"q"," — выйти.",[44,445,446,447,450],{},"Нажмите ",[55,448,449],{},"?"," для полной справки.",[21,452,453,455,456,459],{},[55,454,68],{}," автоматически сканирует выбранный каталог и показывает ",[25,457,458],{},"процентное отношение"," к общему размеру, что очень наглядно.",[16,461,463],{"id":462},"шаг-4-поиск-конкретных-больших-файлов","Шаг 4: поиск конкретных больших файлов",[21,465,466],{},"Иногда проблема не в каталогах, а в одном-двух огромных файлах (например, файл дампа базы данных, лог за годы, забытый архив).",[113,468,470],{"className":115,"code":469,"language":117,"meta":118,"style":118},"# Поиск файлов больше 100МБ в /var/log и вывод топ-10 по размеру\nsudo find /var/log -type f -size +100M -exec du -h {} + 2>/dev/null | sort -rh | head -n 10\n\n# Более быстрый вариант (только имя и размер, без du)\nsudo find /var/log -type f -size +100M -exec ls -lh {} + | awk '{ print $5, $9 }' | sort -rh | head -n 10\n",[55,471,472,477,532,536,541],{"__ignoreMap":118},[122,473,474],{"class":124,"line":125},[122,475,476],{"class":208},"# Поиск файлов больше 100МБ в /var/log и вывод топ-10 по размеру\n",[122,478,479,481,484,487,490,493,496,499,502,504,507,510,513,515,517,519,521,523,525,527,529],{"class":124,"line":212},[122,480,52],{"class":128},[122,482,483],{"class":218}," find",[122,485,486],{"class":218}," /var/log",[122,488,489],{"class":131}," -type",[122,491,492],{"class":218}," f",[122,494,495],{"class":131}," -size",[122,497,498],{"class":218}," +100M",[122,500,501],{"class":131}," -exec",[122,503,246],{"class":218},[122,505,506],{"class":131}," -h",[122,508,509],{"class":218}," {}",[122,511,512],{"class":218}," +",[122,514,256],{"class":255},[122,516,259],{"class":218},[122,518,262],{"class":255},[122,520,265],{"class":128},[122,522,268],{"class":131},[122,524,262],{"class":255},[122,526,273],{"class":128},[122,528,276],{"class":131},[122,530,531],{"class":131}," 10\n",[122,533,534],{"class":124,"line":222},[122,535,226],{"emptyLinePlaceholder":225},[122,537,538],{"class":124,"line":229},[122,539,540],{"class":208},"# Более быстрый вариант (только имя и размер, без du)\n",[122,542,543,545,547,549,551,553,555,557,559,562,565,567,569,571,574,577,579,581,583,585,587,589],{"class":124,"line":235},[122,544,52],{"class":128},[122,546,483],{"class":218},[122,548,486],{"class":218},[122,550,489],{"class":131},[122,552,492],{"class":218},[122,554,495],{"class":131},[122,556,498],{"class":218},[122,558,501],{"class":131},[122,560,561],{"class":218}," ls",[122,563,564],{"class":131}," -lh",[122,566,509],{"class":218},[122,568,512],{"class":218},[122,570,262],{"class":255},[122,572,573],{"class":128}," awk",[122,575,576],{"class":218}," '{ print $5, $9 }'",[122,578,262],{"class":255},[122,580,265],{"class":128},[122,582,268],{"class":131},[122,584,262],{"class":255},[122,586,273],{"class":128},[122,588,276],{"class":131},[122,590,531],{"class":131},[21,592,593,596],{},[25,594,595],{},"Для поиска по всему разделу"," (может быть долгим):",[113,598,600],{"className":115,"code":599,"language":117,"meta":118,"style":118},"sudo find /var -type f -size +500M 2>/dev/null\n",[55,601,602],{"__ignoreMap":118},[122,603,604,606,608,611,613,615,617,620,622],{"class":124,"line":125},[122,605,52],{"class":128},[122,607,483],{"class":218},[122,609,610],{"class":218}," /var",[122,612,489],{"class":131},[122,614,492],{"class":218},[122,616,495],{"class":131},[122,618,619],{"class":218}," +500M",[122,621,256],{"class":255},[122,623,624],{"class":218},"/dev/null\n",[16,626,628],{"id":627},"шаг-5-поиск-висячих-удалённых-файлов","Шаг 5: поиск «висячих» удалённых файлов",[21,630,631,632,635,636,639,640,643],{},"Ситуация: вы удалили большой файл через ",[55,633,634],{},"rm",", но место ",[25,637,638],{},"не освободилось",". Это происходит, если процесс всё ещё держит ",[25,641,642],{},"дескриптор"," удалённого файла.",[113,645,647],{"className":115,"code":646,"language":117,"meta":118,"style":118},"# Показать все открытые удалённые (deleted) файлы в системе\nsudo lsof | grep '(deleted)'\n\n# Пример вывода:\n# COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME\n# java     1234   app    rtd    REG    8,2   10.0G 123456 /var/log/app.log (deleted)\n",[55,648,649,654,669,673,678,683],{"__ignoreMap":118},[122,650,651],{"class":124,"line":125},[122,652,653],{"class":208},"# Показать все открытые удалённые (deleted) файлы в системе\n",[122,655,656,658,661,663,666],{"class":124,"line":212},[122,657,52],{"class":128},[122,659,660],{"class":218}," lsof",[122,662,262],{"class":255},[122,664,665],{"class":128}," grep",[122,667,668],{"class":218}," '(deleted)'\n",[122,670,671],{"class":124,"line":222},[122,672,226],{"emptyLinePlaceholder":225},[122,674,675],{"class":124,"line":229},[122,676,677],{"class":208},"# Пример вывода:\n",[122,679,680],{"class":124,"line":235},[122,681,682],{"class":208},"# COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME\n",[122,684,685],{"class":124,"line":241},[122,686,687],{"class":208},"# java     1234   app    rtd    REG    8,2   10.0G 123456 /var/log/app.log (deleted)\n",[21,689,690,693,694,697],{},[25,691,692],{},"Решение:"," Перезапустите процесс (",[55,695,696],{},"PID 1234"," в примере). После этого место освободится.",[16,699,701],{"id":700},"шаг-6-проверка-места-занятого-кэшем-пакетного-менеджера","Шаг 6: проверка места, занятого кэшем пакетного менеджера",[21,703,704,705,707],{},"Для ",[25,706,79],{},":",[113,709,711],{"className":115,"code":710,"language":117,"meta":118,"style":118},"sudo apt clean        # Удаляет все кэшированные .deb файлы из /var/cache/apt/archives\nsudo apt autoremove   # Удаляет зависимости, установленные автоматически и больше не нужные\n",[55,712,713,725],{"__ignoreMap":118},[122,714,715,717,719,722],{"class":124,"line":125},[122,716,52],{"class":128},[122,718,351],{"class":218},[122,720,721],{"class":218}," clean",[122,723,724],{"class":208},"        # Удаляет все кэшированные .deb файлы из /var/cache/apt/archives\n",[122,726,727,729,731,734],{"class":124,"line":212},[122,728,52],{"class":128},[122,730,351],{"class":218},[122,732,733],{"class":218}," autoremove",[122,735,736],{"class":208},"   # Удаляет зависимости, установленные автоматически и больше не нужные\n",[21,738,704,739,707],{},[25,740,83],{},[113,742,744],{"className":115,"code":743,"language":117,"meta":118,"style":118},"sudo yum clean all    # Очищает весь кэш yum/dnf\nsudo package-cleanup --leaves  # Показывает «осиротевшие» пакеты (требуется установка yum-utils)\n",[55,745,746,761],{"__ignoreMap":118},[122,747,748,750,753,755,758],{"class":124,"line":125},[122,749,52],{"class":128},[122,751,752],{"class":218}," yum",[122,754,721],{"class":218},[122,756,757],{"class":218}," all",[122,759,760],{"class":208},"    # Очищает весь кэш yum/dnf\n",[122,762,763,765,768,771],{"class":124,"line":212},[122,764,52],{"class":128},[122,766,767],{"class":218}," package-cleanup",[122,769,770],{"class":131}," --leaves",[122,772,773],{"class":208},"  # Показывает «осиротевшие» пакеты (требуется установка yum-utils)\n",[21,775,776,779,780,783],{},[25,777,778],{},"Важно:"," Не выполняйте ",[55,781,782],{},"clean"," на продакшн-сервере без понимания последствий. Это ускорит будущие обновления, но может потребовать переустановки пакетов.",[16,785,787],{"id":786},"проверка-результата","Проверка результата",[21,789,790,791,794,795,798,799,801,802,805],{},"После выполнения очищающих действий вернитесь к ",[25,792,793],{},"Шагу 1"," и выполните ",[55,796,797],{},"df -h"," снова. Убедитесь, что ",[55,800,158],{}," для проблемного раздела снизился до безопасного уровня (рекомендуется ",[25,803,804],{},"\u003C80%",").",[21,807,808],{},"Также можно проверить изменение в конкретном каталоге:",[113,810,812],{"className":115,"code":811,"language":117,"meta":118,"style":118},"du -sh /var/log\n",[55,813,814],{"__ignoreMap":118},[122,815,816,818,820],{"class":124,"line":125},[122,817,175],{"class":128},[122,819,249],{"class":131},[122,821,822],{"class":218}," /var/log\n",[16,824,826],{"id":825},"возможные-проблемы","Возможные проблемы",[41,828,829,863,906,934],{},[44,830,831,838],{},[25,832,833,835,836,449],{},[55,834,175],{}," показывает меньше, чем ",[55,837,107],{},[152,839,840,852],{},[44,841,842,845,846,848,849,851],{},[25,843,844],{},"Причина:"," Файлы, удалённые, но всё ещё открытые процессами (см. Шаг 5). Или использование ",[55,847,175],{}," без ",[55,850,52],{}," (вы не видите файлы других пользователей).",[44,853,854,856,857,860,861,73],{},[25,855,692],{}," Используйте ",[55,858,859],{},"sudo du"," и ищите «deleted» файлы через ",[55,862,72],{},[44,864,865,873],{},[25,866,867,69,869,872],{},[55,868,68],{},[55,870,871],{},"find"," зависает или очень долгий?",[152,874,875,887],{},[44,876,877,879,880,58,883,886],{},[25,878,844],{}," Анализ огромного количества мелких файлов (например, ",[55,881,882],{},"/proc",[55,884,885],{},"/sys",", сетевые файловые системы).",[44,888,889,891,892,895,896,898,899,902,903,805],{},[25,890,692],{}," Всегда указывайте конкретный путь для анализа (",[55,893,894],{},"ncdu /var","), а не корень ",[55,897,69],{},". Исключите монтированные файловые системы флагом ",[55,900,901],{},"-x"," (",[55,904,905],{},"sudo du -shx /",[44,907,908,916],{},[25,909,910,911,80,913,915],{},"Не могу удалить файл из ",[55,912,68],{},[55,914,634],{}," — «Permission denied»",[152,917,918,923],{},[44,919,920,922],{},[25,921,844],{}," Файл принадлежит другому пользователю или системному процессу.",[44,924,925,856,927,929,930,933],{},[25,926,692],{},[55,928,52],{}," для удаления (",[55,931,932],{},"sudo rm путь/к/файлу","). Будьте осторожны!",[44,935,936,939],{},[25,937,938],{},"Очистка логов не помогла — место вернулось через день",[152,940,941,946],{},[44,942,943,945],{},[25,944,844],{}," Приложение продолжает бесконтрольно писать логи. Увеличился ли размер одного файла или появились новые?",[44,947,948,950,951,954,955,958],{},[25,949,692],{}," Настройте ротацию логов (",[55,952,953],{},"logrotate",") для проблемного приложения. Найдите конфиг в ",[55,956,957],{},"/etc/logrotate.d/"," или настройте в самом приложении.",[960,961,962],"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":118,"searchDepth":212,"depth":212,"links":964},[965,966,967,968,970,972,973,974,975,976],{"id":18,"depth":212,"text":19},{"id":35,"depth":212,"text":36},{"id":100,"depth":212,"text":101},{"id":171,"depth":212,"text":969},"Шаг 2: детальный анализ проблемного раздела с du",{"id":324,"depth":212,"text":971},"Шаг 3: интерактивный анализ с ncdu (рекомендуется)",{"id":462,"depth":212,"text":463},{"id":627,"depth":212,"text":628},{"id":700,"depth":212,"text":701},{"id":786,"depth":212,"text":787},{"id":825,"depth":212,"text":826},null,"2026-02-15 20:27:29","Узнайте, как эффективно отслеживать использование диска в Linux с помощью df, du и ncdu. Пошаговая инструкция с примерами для Ubuntu, CentOS и других дистрибутивов.","medium",false,"15-30 мин","md",[985,988,991,994],{"question":986,"answer":987},"Как быстро посмотреть свободное место на всех разделах?","Используйте команду `df -h`. Флаг `-h` показывает размеры в удобочитаемом формате (ГБ, МБ).",{"question":989,"answer":990},"Как найти самые большие каталоги в текущей папке?","Выполните `du -sh * | sort -rh | head -n 10`. Эта цепочка команд сортирует каталоги по убыванию размера и показывает топ-10.",{"question":992,"answer":993},"Можно ли мониторить диск в реальном времени?","Да, используйте `watch -n 5 df -h` для обновления каждые 5 секунд или установите `ncdu` для интерактивного анализа.",{"question":995,"answer":996},"Почему `df` показывает меньше места, чем есть на самом деле?","Чаще всего это резервирование места под root (обычно 5%) или метаданные файловой системы (например, для ext4).",[998,1001,1004,1007,1010,1013],{"name":999,"text":1000},"Установите необходимые утилиты (опционально)","Убедитесь, что установлены `ncdu` и `lsof`. На Debian/Ubuntu: `sudo apt install ncdu lsof`. На RHEL/CentOS: `sudo yum install ncdu lsof`.",{"name":1002,"text":1003},"Просмотрите общую картину по разделам","Запустите `df -h`. Обратите внимание на столбцы `Size`, `Used` и `Use%`. Раздел с `Use%` близким к 100% требует внимания.",{"name":1005,"text":1006},"Найдите крупнейшие каталоги в проблемном разделе","Сменитесь на каталог раздела (например, `cd /var`) и выполните `du -sh * 2>/dev/null | sort -rh | head -n 20`. Флаг `2>/dev/null` скрывает ошибки доступа.",{"name":1008,"text":1009},"Используйте ncdu для интерактивного анализа","В корне проблемного раздела запустите `sudo ncdu`. Это покажет детальную иерархию с возможностью навигации. Нажмите `?` для справки.",{"name":1011,"text":1012},"Найдите конкретные большие файлы","В каталоге выполните `find . -type f -exec du -h {} + 2>/dev/null | sort -rh | head -n 20`. Для поиска по всему разделу: `sudo find /path -type f -size +100M`.",{"name":1014,"text":1015},"Проверьте, какие процессы удерживают удалённые файлы","Если удалили большой файл, но место не освободилось, найдите процесс: `sudo lsof | grep '(deleted)'`. Перезапустите проблемный процесс.","PT20M",[1018,1019,1020,1021,1022,1023,1024,1025],"мониторинг диска linux","проверить свободное место linux","команда df du","найти большие файлы linux","очистить диск linux","ncdu утилита","диск заполнен linux что делать","анализ использования диска","ru_RU",{},"/guides/linux/monitor-disk-usage","linux",[1031,1032,1033],"/guides/linux/clean-disk-space","/errors/linux/no-space-left-on-device","/guides/linux/automate-disk-cleanup","Гайды Linux",{"title":5,"description":979},"guides/linux/monitor-disk-usage","В этом руководстве вы освоите ключевые утилиты Linux для анализа дискового пространства, научитесь находить большие файлы и каталоги, а также настроите базовый мониторинг.",[1039,1040,1041,107,175,1042,1043],"гайды linux","мониторинг","дисковое пространство","terminal","sysadmin","guide","MmnAiz30Ij1vV0QZ34mDKBsQNA5h7jla0XV-bW1SMAY",{"data":1047,"body":1048},{},{"type":1049,"children":1050},"root",[1051],{"type":1052,"tag":21,"props":1053,"children":1054},"element",{},[1055,1057,1062,1064,1069],{"type":143,"value":1056},"Используйте команду ",{"type":1052,"tag":55,"props":1058,"children":1060},{"className":1059},[],[1061],{"type":143,"value":797},{"type":143,"value":1063},". Флаг ",{"type":1052,"tag":55,"props":1065,"children":1067},{"className":1066},[],[1068],{"type":143,"value":297},{"type":143,"value":1070}," показывает размеры в удобочитаемом формате (ГБ, МБ).",{"data":1072,"body":1073},{},{"type":1049,"children":1074},[1075],{"type":1052,"tag":21,"props":1076,"children":1077},{},[1078,1080,1086],{"type":143,"value":1079},"Выполните ",{"type":1052,"tag":55,"props":1081,"children":1083},{"className":1082},[],[1084],{"type":143,"value":1085},"du -sh * | sort -rh | head -n 10",{"type":143,"value":1087},". Эта цепочка команд сортирует каталоги по убыванию размера и показывает топ-10.",{"data":1089,"body":1090},{},{"type":1049,"children":1091},[1092],{"type":1052,"tag":21,"props":1093,"children":1094},{},[1095,1097,1103,1105,1110],{"type":143,"value":1096},"Да, используйте ",{"type":1052,"tag":55,"props":1098,"children":1100},{"className":1099},[],[1101],{"type":143,"value":1102},"watch -n 5 df -h",{"type":143,"value":1104}," для обновления каждые 5 секунд или установите ",{"type":1052,"tag":55,"props":1106,"children":1108},{"className":1107},[],[1109],{"type":143,"value":68},{"type":143,"value":1111}," для интерактивного анализа.",{"data":1113,"body":1114},{},{"type":1049,"children":1115},[1116],{"type":1052,"tag":21,"props":1117,"children":1118},{},[1119],{"type":143,"value":996},{"data":1121,"body":1122},{},{"type":1049,"children":1123},[1124],{"type":1052,"tag":21,"props":1125,"children":1126},{},[1127,1129,1134,1136,1141,1143,1149,1151,1157],{"type":143,"value":1128},"Убедитесь, что установлены ",{"type":1052,"tag":55,"props":1130,"children":1132},{"className":1131},[],[1133],{"type":143,"value":68},{"type":143,"value":1135}," и ",{"type":1052,"tag":55,"props":1137,"children":1139},{"className":1138},[],[1140],{"type":143,"value":72},{"type":143,"value":1142},". На Debian/Ubuntu: ",{"type":1052,"tag":55,"props":1144,"children":1146},{"className":1145},[],[1147],{"type":143,"value":1148},"sudo apt install ncdu lsof",{"type":143,"value":1150},". На RHEL/CentOS: ",{"type":1052,"tag":55,"props":1152,"children":1154},{"className":1153},[],[1155],{"type":143,"value":1156},"sudo yum install ncdu lsof",{"type":143,"value":73},{"data":1159,"body":1160},{},{"type":1049,"children":1161},[1162],{"type":1052,"tag":21,"props":1163,"children":1164},{},[1165,1167,1172,1174,1180,1181,1187,1188,1194,1196,1201],{"type":143,"value":1166},"Запустите ",{"type":1052,"tag":55,"props":1168,"children":1170},{"className":1169},[],[1171],{"type":143,"value":797},{"type":143,"value":1173},". Обратите внимание на столбцы ",{"type":1052,"tag":55,"props":1175,"children":1177},{"className":1176},[],[1178],{"type":143,"value":1179},"Size",{"type":143,"value":58},{"type":1052,"tag":55,"props":1182,"children":1184},{"className":1183},[],[1185],{"type":143,"value":1186},"Used",{"type":143,"value":1135},{"type":1052,"tag":55,"props":1189,"children":1191},{"className":1190},[],[1192],{"type":143,"value":1193},"Use%",{"type":143,"value":1195},". Раздел с ",{"type":1052,"tag":55,"props":1197,"children":1199},{"className":1198},[],[1200],{"type":143,"value":1193},{"type":143,"value":1202}," близким к 100% требует внимания.",{"data":1204,"body":1205},{},{"type":1049,"children":1206},[1207],{"type":1052,"tag":21,"props":1208,"children":1209},{},[1210,1212,1218,1220,1226,1227,1232],{"type":143,"value":1211},"Сменитесь на каталог раздела (например, ",{"type":1052,"tag":55,"props":1213,"children":1215},{"className":1214},[],[1216],{"type":143,"value":1217},"cd /var",{"type":143,"value":1219},") и выполните ",{"type":1052,"tag":55,"props":1221,"children":1223},{"className":1222},[],[1224],{"type":143,"value":1225},"du -sh * 2>/dev/null | sort -rh | head -n 20",{"type":143,"value":1063},{"type":1052,"tag":55,"props":1228,"children":1230},{"className":1229},[],[1231],{"type":143,"value":303},{"type":143,"value":1233}," скрывает ошибки доступа.",{"data":1235,"body":1236},{},{"type":1049,"children":1237},[1238],{"type":1052,"tag":21,"props":1239,"children":1240},{},[1241,1243,1249,1251,1256],{"type":143,"value":1242},"В корне проблемного раздела запустите ",{"type":1052,"tag":55,"props":1244,"children":1246},{"className":1245},[],[1247],{"type":143,"value":1248},"sudo ncdu",{"type":143,"value":1250},". Это покажет детальную иерархию с возможностью навигации. Нажмите ",{"type":1052,"tag":55,"props":1252,"children":1254},{"className":1253},[],[1255],{"type":143,"value":449},{"type":143,"value":1257}," для справки.",{"data":1259,"body":1260},{},{"type":1049,"children":1261},[1262],{"type":1052,"tag":21,"props":1263,"children":1264},{},[1265,1267,1273,1275,1281],{"type":143,"value":1266},"В каталоге выполните ",{"type":1052,"tag":55,"props":1268,"children":1270},{"className":1269},[],[1271],{"type":143,"value":1272},"find . -type f -exec du -h {} + 2>/dev/null | sort -rh | head -n 20",{"type":143,"value":1274},". Для поиска по всему разделу: ",{"type":1052,"tag":55,"props":1276,"children":1278},{"className":1277},[],[1279],{"type":143,"value":1280},"sudo find /path -type f -size +100M",{"type":143,"value":73},{"data":1283,"body":1284},{},{"type":1049,"children":1285},[1286],{"type":1052,"tag":21,"props":1287,"children":1288},{},[1289,1291,1297],{"type":143,"value":1290},"Если удалили большой файл, но место не освободилось, найдите процесс: ",{"type":1052,"tag":55,"props":1292,"children":1294},{"className":1293},[],[1295],{"type":143,"value":1296},"sudo lsof | grep '(deleted)'",{"type":143,"value":1298},". Перезапустите проблемный процесс.",[1300,2329,3009],{"id":1301,"title":1302,"appliesTo":1303,"author":11,"body":1304,"canonical":977,"code":977,"createdAt":2271,"description":2272,"difficulty":2273,"draft":981,"estimatedTime":982,"extension":983,"faq":2274,"howToSteps":2287,"howToTotalTime":1016,"image":977,"keywords":2303,"locale":1026,"meta":2314,"navigation":225,"path":1031,"platform":1029,"related":2315,"section":2319,"seo":2320,"severity":977,"stem":2321,"summary":2322,"tags":2323,"twitterCreator":977,"twitterSite":977,"type":1044,"updatedAt":2271,"__hash__":2328},"content_ru/guides/linux/clean-disk-space.md","Чистим Linux: 5 проверенных способов освободить место на диске",[7,8,9,10],{"type":13,"value":1305,"toc":2245},[1306,1308,1311,1313,1315,1340,1344,1347,1407,1423,1441,1452,1456,1459,1464,1502,1506,1546,1548,1552,1555,1559,1625,1629,1688,1697,1701,1707,1711,1842,1846,1937,1941,1953,2079,2093,2095,2098,2112,2115,2126,2129,2145,2147,2151,2164,2168,2174,2178,2192,2196,2209,2213,2233,2236,2242],[16,1307,19],{"id":18},[21,1309,1310],{},"Дисковое пространство на Linux-сервере или рабочей станции может закончиться внезапно из-за накопления служебных файлов: кэша пакетов, старых версий ядра, неочищенных логов и временных данных. Это приводит к ошибкам записи, сбоям в работе служб и невозможности установки обновлений. Данный гайд поможет вам безопасно освободить от 5 до 50 ГБ (и более) за 20 минут, не затрагивая пользовательские данные и не нарушая работу системы.",[16,1312,36],{"id":35},[21,1314,39],{},[41,1316,1317,1322,1325,1328],{},[44,1318,49,1319,1321],{},[25,1320,52],{}," или доступ к root-пользователю.",[44,1323,1324],{},"Система работает на одном из поддерживаемых дистрибутивов: Ubuntu/Debian (apt), CentOS/RHEL/Fedora (dnf/yum).",[44,1326,1327],{},"Вы создали резервную копию важных данных (на всякий случай).",[44,1329,1330,1331,1333,1334,80,1337,73],{},"Установлены базовые утилиты: ",[55,1332,68],{}," (опционально, но полезно), ",[55,1335,1336],{},"apt",[55,1338,1339],{},"dnf",[16,1341,1343],{"id":1342},"шаг-1-анализ-использования-диска","Шаг 1: Анализ использования диска",[21,1345,1346],{},"Прежде чем удалять что-либо, определите \"тяжеловесные\" директории. Это поможет целенаправленно очистить систему.",[113,1348,1350],{"className":115,"code":1349,"language":117,"meta":118,"style":118},"# Установите ncdu для интерактивного анализа (Debian/Ubuntu)\nsudo apt install ncdu\n\n# Или используйте встроенную команду du для быстрого обзора\nsudo du -sh /* 2>/dev/null | sort -rh | head -20\n",[55,1351,1352,1357,1367,1371,1376],{"__ignoreMap":118},[122,1353,1354],{"class":124,"line":125},[122,1355,1356],{"class":208},"# Установите ncdu для интерактивного анализа (Debian/Ubuntu)\n",[122,1358,1359,1361,1363,1365],{"class":124,"line":212},[122,1360,52],{"class":128},[122,1362,351],{"class":218},[122,1364,365],{"class":218},[122,1366,368],{"class":218},[122,1368,1369],{"class":124,"line":222},[122,1370,226],{"emptyLinePlaceholder":225},[122,1372,1373],{"class":124,"line":229},[122,1374,1375],{"class":208},"# Или используйте встроенную команду du для быстрого обзора\n",[122,1377,1378,1380,1382,1384,1387,1390,1392,1394,1396,1398,1400,1402,1404],{"class":124,"line":235},[122,1379,52],{"class":128},[122,1381,246],{"class":218},[122,1383,249],{"class":131},[122,1385,1386],{"class":218}," /",[122,1388,1389],{"class":131},"*",[122,1391,256],{"class":255},[122,1393,259],{"class":218},[122,1395,262],{"class":255},[122,1397,265],{"class":128},[122,1399,268],{"class":131},[122,1401,262],{"class":255},[122,1403,273],{"class":128},[122,1405,1406],{"class":131}," -20\n",[21,1408,178,1409,1412,1413,58,1415,58,1417,1135,1419,1422],{},[55,1410,1411],{},"du -sh /*"," покажет размер каждой корневой директории. Обратите внимание на ",[55,1414,57],{},[55,1416,64],{},[55,1418,61],{},[55,1420,1421],{},"/tmp",". Для более детального анализа внутри конкретной папки:",[113,1424,1426],{"className":115,"code":1425,"language":117,"meta":118,"style":118},"ncdu /var/log\nncdu /usr\n",[55,1427,1428,1434],{"__ignoreMap":118},[122,1429,1430,1432],{"class":124,"line":125},[122,1431,68],{"class":128},[122,1433,822],{"class":218},[122,1435,1436,1438],{"class":124,"line":212},[122,1437,68],{"class":128},[122,1439,1440],{"class":218}," /usr\n",[21,1442,1443,1445,1446,1135,1448,1451],{},[25,1444,778],{}," Не удаляйте файлы в ",[55,1447,64],{},[55,1449,1450],{},"/etc"," без полного понимания их назначения.",[16,1453,1455],{"id":1454},"шаг-2-очистка-кэша-пакетного-менеджера","Шаг 2: Очистка кэша пакетного менеджера",[21,1457,1458],{},"Пакетные менеджеры хранят скачанные архивные файлы (.deb, .rpm) в кэше. Они занимают место, но после установки пакетов обычно не нужны.",[1460,1461,1463],"h3",{"id":1462},"для-debianubuntu-apt","Для Debian/Ubuntu (apt):",[113,1465,1467],{"className":115,"code":1466,"language":117,"meta":118,"style":118},"# Очистка кэша (удаляет файлы из /var/cache/apt/archives)\nsudo apt-get clean\n\n# Очистка только устаревших файлов (без удаления текущих)\nsudo apt-get autoclean\n",[55,1468,1469,1474,1484,1488,1493],{"__ignoreMap":118},[122,1470,1471],{"class":124,"line":125},[122,1472,1473],{"class":208},"# Очистка кэша (удаляет файлы из /var/cache/apt/archives)\n",[122,1475,1476,1478,1481],{"class":124,"line":212},[122,1477,52],{"class":128},[122,1479,1480],{"class":218}," apt-get",[122,1482,1483],{"class":218}," clean\n",[122,1485,1486],{"class":124,"line":222},[122,1487,226],{"emptyLinePlaceholder":225},[122,1489,1490],{"class":124,"line":229},[122,1491,1492],{"class":208},"# Очистка только устаревших файлов (без удаления текущих)\n",[122,1494,1495,1497,1499],{"class":124,"line":235},[122,1496,52],{"class":128},[122,1498,1480],{"class":218},[122,1500,1501],{"class":218}," autoclean\n",[1460,1503,1505],{"id":1504},"для-centosrhelfedora-dnfyum","Для CentOS/RHEL/Fedora (dnf/yum):",[113,1507,1509],{"className":115,"code":1508,"language":117,"meta":118,"style":118},"# Очистка всех кэшированных метаданных и пакетов\nsudo dnf clean all\n\n# Для старых систем (yum)\nsudo yum clean all\n",[55,1510,1511,1516,1527,1531,1536],{"__ignoreMap":118},[122,1512,1513],{"class":124,"line":125},[122,1514,1515],{"class":208},"# Очистка всех кэшированных метаданных и пакетов\n",[122,1517,1518,1520,1522,1524],{"class":124,"line":212},[122,1519,52],{"class":128},[122,1521,384],{"class":218},[122,1523,721],{"class":218},[122,1525,1526],{"class":218}," all\n",[122,1528,1529],{"class":124,"line":222},[122,1530,226],{"emptyLinePlaceholder":225},[122,1532,1533],{"class":124,"line":229},[122,1534,1535],{"class":208},"# Для старых систем (yum)\n",[122,1537,1538,1540,1542,1544],{"class":124,"line":235},[122,1539,52],{"class":128},[122,1541,752],{"class":218},[122,1543,721],{"class":218},[122,1545,1526],{"class":218},[96,1547],{},[16,1549,1551],{"id":1550},"шаг-3-удаление-старых-версий-ядра","Шаг 3: Удаление старых версий ядра",[21,1553,1554],{},"Каждое обновление ядра оставляет старую версию на диске. Обычно достаточно держать текущее ядро и одно запасное.",[1460,1556,1558],{"id":1557},"debianubuntu","Debian/Ubuntu:",[113,1560,1562],{"className":115,"code":1561,"language":117,"meta":118,"style":118},"# Показать установленные ядра\ndpkg --list | grep linux-image\n\n# Автоматическое удаление старых версий (оставляет 2 последних)\nsudo apt-get autoremove --purge\n\n# Или вручную (пример):\nsudo apt-get purge linux-image-5.4.0-42-generic\n",[55,1563,1564,1569,1584,1588,1593,1604,1608,1613],{"__ignoreMap":118},[122,1565,1566],{"class":124,"line":125},[122,1567,1568],{"class":208},"# Показать установленные ядра\n",[122,1570,1571,1574,1577,1579,1581],{"class":124,"line":212},[122,1572,1573],{"class":128},"dpkg",[122,1575,1576],{"class":131}," --list",[122,1578,262],{"class":255},[122,1580,665],{"class":128},[122,1582,1583],{"class":218}," linux-image\n",[122,1585,1586],{"class":124,"line":222},[122,1587,226],{"emptyLinePlaceholder":225},[122,1589,1590],{"class":124,"line":229},[122,1591,1592],{"class":208},"# Автоматическое удаление старых версий (оставляет 2 последних)\n",[122,1594,1595,1597,1599,1601],{"class":124,"line":235},[122,1596,52],{"class":128},[122,1598,1480],{"class":218},[122,1600,733],{"class":218},[122,1602,1603],{"class":131}," --purge\n",[122,1605,1606],{"class":124,"line":241},[122,1607,226],{"emptyLinePlaceholder":225},[122,1609,1610],{"class":124,"line":395},[122,1611,1612],{"class":208},"# Или вручную (пример):\n",[122,1614,1615,1617,1619,1622],{"class":124,"line":401},[122,1616,52],{"class":128},[122,1618,1480],{"class":218},[122,1620,1621],{"class":218}," purge",[122,1623,1624],{"class":218}," linux-image-5.4.0-42-generic\n",[1460,1626,1628],{"id":1627},"centosrhel-8fedora-dnf","CentOS/RHEL 8+/Fedora (dnf):",[113,1630,1632],{"className":115,"code":1631,"language":117,"meta":118,"style":118},"# Показать установленные ядра\nrpm -qa | grep kernel\n\n# Удалить все, кроме последних двух (требует пакет package-cleanup)\nsudo dnf install yum-utils  # если не установлен\nsudo package-cleanup --oldkernels --count=2\n",[55,1633,1634,1638,1653,1657,1662,1676],{"__ignoreMap":118},[122,1635,1636],{"class":124,"line":125},[122,1637,1568],{"class":208},[122,1639,1640,1643,1646,1648,1650],{"class":124,"line":212},[122,1641,1642],{"class":128},"rpm",[122,1644,1645],{"class":131}," -qa",[122,1647,262],{"class":255},[122,1649,665],{"class":128},[122,1651,1652],{"class":218}," kernel\n",[122,1654,1655],{"class":124,"line":222},[122,1656,226],{"emptyLinePlaceholder":225},[122,1658,1659],{"class":124,"line":229},[122,1660,1661],{"class":208},"# Удалить все, кроме последних двух (требует пакет package-cleanup)\n",[122,1663,1664,1666,1668,1670,1673],{"class":124,"line":235},[122,1665,52],{"class":128},[122,1667,384],{"class":218},[122,1669,365],{"class":218},[122,1671,1672],{"class":218}," yum-utils",[122,1674,1675],{"class":208},"  # если не установлен\n",[122,1677,1678,1680,1682,1685],{"class":124,"line":241},[122,1679,52],{"class":128},[122,1681,767],{"class":218},[122,1683,1684],{"class":131}," --oldkernels",[122,1686,1687],{"class":131}," --count=2\n",[21,1689,1690,1693,1694,73],{},[25,1691,1692],{},"⚠️ Важно:"," Никогда не удаляйте текущее загружаемое ядро. Проверьте активное ядро командой ",[55,1695,1696],{},"uname -r",[16,1698,1700],{"id":1699},"шаг-4-очистка-системных-логов","Шаг 4: Очистка системных логов",[21,1702,1703,1704,1706],{},"Логи в ",[55,1705,320],{}," могут разрастаться indefinitly. Также systemd-journald хранит бинарные логи.",[1460,1708,1710],{"id":1709},"ротация-и-удаление-старых-логов","Ротация и удаление старых логов:",[113,1712,1714],{"className":115,"code":1713,"language":117,"meta":118,"style":118},"# Просмотр размера логов\nsudo du -sh /var/log/*\n\n# Удаление сжатых старых логов (старше 30 дней)\nsudo find /var/log -type f -name \"*.gz\" -mtime +30 -delete\nsudo find /var/log -type f -name \"*.log.*\" -mtime +30 -delete\n\n# Очистка активных логов (осторожно! Лучше сначала проверить)\nsudo find /var/log -type f -name \"*.log\" -mtime +7 -exec truncate -s 0 {} \\;\n",[55,1715,1716,1721,1735,1739,1744,1771,1794,1798,1803],{"__ignoreMap":118},[122,1717,1718],{"class":124,"line":125},[122,1719,1720],{"class":208},"# Просмотр размера логов\n",[122,1722,1723,1725,1727,1729,1732],{"class":124,"line":212},[122,1724,52],{"class":128},[122,1726,246],{"class":218},[122,1728,249],{"class":131},[122,1730,1731],{"class":218}," /var/log/",[122,1733,1734],{"class":131},"*\n",[122,1736,1737],{"class":124,"line":222},[122,1738,226],{"emptyLinePlaceholder":225},[122,1740,1741],{"class":124,"line":229},[122,1742,1743],{"class":208},"# Удаление сжатых старых логов (старше 30 дней)\n",[122,1745,1746,1748,1750,1752,1754,1756,1759,1762,1765,1768],{"class":124,"line":235},[122,1747,52],{"class":128},[122,1749,483],{"class":218},[122,1751,486],{"class":218},[122,1753,489],{"class":131},[122,1755,492],{"class":218},[122,1757,1758],{"class":131}," -name",[122,1760,1761],{"class":218}," \"*.gz\"",[122,1763,1764],{"class":131}," -mtime",[122,1766,1767],{"class":218}," +30",[122,1769,1770],{"class":131}," -delete\n",[122,1772,1773,1775,1777,1779,1781,1783,1785,1788,1790,1792],{"class":124,"line":241},[122,1774,52],{"class":128},[122,1776,483],{"class":218},[122,1778,486],{"class":218},[122,1780,489],{"class":131},[122,1782,492],{"class":218},[122,1784,1758],{"class":131},[122,1786,1787],{"class":218}," \"*.log.*\"",[122,1789,1764],{"class":131},[122,1791,1767],{"class":218},[122,1793,1770],{"class":131},[122,1795,1796],{"class":124,"line":395},[122,1797,226],{"emptyLinePlaceholder":225},[122,1799,1800],{"class":124,"line":401},[122,1801,1802],{"class":208},"# Очистка активных логов (осторожно! Лучше сначала проверить)\n",[122,1804,1806,1808,1810,1812,1814,1816,1818,1821,1823,1826,1828,1831,1834,1837,1839],{"class":124,"line":1805},9,[122,1807,52],{"class":128},[122,1809,483],{"class":218},[122,1811,486],{"class":218},[122,1813,489],{"class":131},[122,1815,492],{"class":218},[122,1817,1758],{"class":131},[122,1819,1820],{"class":218}," \"*.log\"",[122,1822,1764],{"class":131},[122,1824,1825],{"class":218}," +7",[122,1827,501],{"class":131},[122,1829,1830],{"class":218}," truncate",[122,1832,1833],{"class":131}," -s",[122,1835,1836],{"class":131}," 0",[122,1838,509],{"class":218},[122,1840,1841],{"class":131}," \\;\n",[1460,1843,1845],{"id":1844},"очистка-journald-systemd-журнал","Очистка journald (systemd журнал):",[113,1847,1849],{"className":115,"code":1848,"language":117,"meta":118,"style":118},"# Проверка текущего размера журнала\njournalctl --disk-usage\n\n# Оставить логи только за последние 7 дней\nsudo journalctl --vacuum-time=7d\n\n# Или ограничить размер до 500 МБ\nsudo journalctl --vacuum-size=500M\n\n# Постоянное ограничение (добавьте в /etc/systemd/journald.conf):\n# SystemMaxUse=500M\n# MaxRetentionSec=1week\nsudo systemctl restart systemd-journald\n",[55,1850,1851,1856,1864,1868,1873,1883,1887,1892,1901,1905,1911,1917,1923],{"__ignoreMap":118},[122,1852,1853],{"class":124,"line":125},[122,1854,1855],{"class":208},"# Проверка текущего размера журнала\n",[122,1857,1858,1861],{"class":124,"line":212},[122,1859,1860],{"class":128},"journalctl",[122,1862,1863],{"class":131}," --disk-usage\n",[122,1865,1866],{"class":124,"line":222},[122,1867,226],{"emptyLinePlaceholder":225},[122,1869,1870],{"class":124,"line":229},[122,1871,1872],{"class":208},"# Оставить логи только за последние 7 дней\n",[122,1874,1875,1877,1880],{"class":124,"line":235},[122,1876,52],{"class":128},[122,1878,1879],{"class":218}," journalctl",[122,1881,1882],{"class":131}," --vacuum-time=7d\n",[122,1884,1885],{"class":124,"line":241},[122,1886,226],{"emptyLinePlaceholder":225},[122,1888,1889],{"class":124,"line":395},[122,1890,1891],{"class":208},"# Или ограничить размер до 500 МБ\n",[122,1893,1894,1896,1898],{"class":124,"line":401},[122,1895,52],{"class":128},[122,1897,1879],{"class":218},[122,1899,1900],{"class":131}," --vacuum-size=500M\n",[122,1902,1903],{"class":124,"line":1805},[122,1904,226],{"emptyLinePlaceholder":225},[122,1906,1908],{"class":124,"line":1907},10,[122,1909,1910],{"class":208},"# Постоянное ограничение (добавьте в /etc/systemd/journald.conf):\n",[122,1912,1914],{"class":124,"line":1913},11,[122,1915,1916],{"class":208},"# SystemMaxUse=500M\n",[122,1918,1920],{"class":124,"line":1919},12,[122,1921,1922],{"class":208},"# MaxRetentionSec=1week\n",[122,1924,1926,1928,1931,1934],{"class":124,"line":1925},13,[122,1927,52],{"class":128},[122,1929,1930],{"class":218}," systemctl",[122,1932,1933],{"class":218}," restart",[122,1935,1936],{"class":218}," systemd-journald\n",[16,1938,1940],{"id":1939},"шаг-5-поиск-и-удаление-больших-временных-файлов","Шаг 5: Поиск и удаление больших временных файлов",[21,1942,1943,1944,58,1946,58,1949,1952],{},"Временные файлы в ",[55,1945,1421],{},[55,1947,1948],{},"~/.cache",[55,1950,1951],{},"/var/tmp"," часто остаются после сбоев.",[113,1954,1956],{"className":115,"code":1955,"language":117,"meta":118,"style":118},"# Поиск файлов >100 МБ в /tmp и /var/tmp (старше 10 дней)\nsudo find /tmp /var/tmp -type f -size +100M -mtime +10 -exec ls -lh {} \\;\n\n# Удаление (предварительно проверьте список!)\nsudo find /tmp /var/tmp -type f -size +100M -mtime +10 -delete\n\n# Очистка кэша пользователя (например, для браузеров, менеджеров пакетов)\nrm -rf ~/.cache/*\n\n# Очистка кэша пакетов pip/npm (если используются)\nrm -rf ~/.cache/pip\nrm -rf ~/.npm\n",[55,1957,1958,1963,1998,2002,2007,2031,2035,2040,2052,2056,2061,2070],{"__ignoreMap":118},[122,1959,1960],{"class":124,"line":125},[122,1961,1962],{"class":208},"# Поиск файлов >100 МБ в /tmp и /var/tmp (старше 10 дней)\n",[122,1964,1965,1967,1969,1972,1975,1977,1979,1981,1983,1985,1988,1990,1992,1994,1996],{"class":124,"line":212},[122,1966,52],{"class":128},[122,1968,483],{"class":218},[122,1970,1971],{"class":218}," /tmp",[122,1973,1974],{"class":218}," /var/tmp",[122,1976,489],{"class":131},[122,1978,492],{"class":218},[122,1980,495],{"class":131},[122,1982,498],{"class":218},[122,1984,1764],{"class":131},[122,1986,1987],{"class":218}," +10",[122,1989,501],{"class":131},[122,1991,561],{"class":218},[122,1993,564],{"class":131},[122,1995,509],{"class":218},[122,1997,1841],{"class":131},[122,1999,2000],{"class":124,"line":222},[122,2001,226],{"emptyLinePlaceholder":225},[122,2003,2004],{"class":124,"line":229},[122,2005,2006],{"class":208},"# Удаление (предварительно проверьте список!)\n",[122,2008,2009,2011,2013,2015,2017,2019,2021,2023,2025,2027,2029],{"class":124,"line":235},[122,2010,52],{"class":128},[122,2012,483],{"class":218},[122,2014,1971],{"class":218},[122,2016,1974],{"class":218},[122,2018,489],{"class":131},[122,2020,492],{"class":218},[122,2022,495],{"class":131},[122,2024,498],{"class":218},[122,2026,1764],{"class":131},[122,2028,1987],{"class":218},[122,2030,1770],{"class":131},[122,2032,2033],{"class":124,"line":241},[122,2034,226],{"emptyLinePlaceholder":225},[122,2036,2037],{"class":124,"line":395},[122,2038,2039],{"class":208},"# Очистка кэша пользователя (например, для браузеров, менеджеров пакетов)\n",[122,2041,2042,2044,2047,2050],{"class":124,"line":401},[122,2043,634],{"class":128},[122,2045,2046],{"class":131}," -rf",[122,2048,2049],{"class":218}," ~/.cache/",[122,2051,1734],{"class":131},[122,2053,2054],{"class":124,"line":1805},[122,2055,226],{"emptyLinePlaceholder":225},[122,2057,2058],{"class":124,"line":1907},[122,2059,2060],{"class":208},"# Очистка кэша пакетов pip/npm (если используются)\n",[122,2062,2063,2065,2067],{"class":124,"line":1913},[122,2064,634],{"class":128},[122,2066,2046],{"class":131},[122,2068,2069],{"class":218}," ~/.cache/pip\n",[122,2071,2072,2074,2076],{"class":124,"line":1919},[122,2073,634],{"class":128},[122,2075,2046],{"class":131},[122,2077,2078],{"class":218}," ~/.npm\n",[21,2080,2081,2084,2085,2088,2089,2092],{},[25,2082,2083],{},"💡 Совет:"," Для безопасного удаления используйте сначала ",[55,2086,2087],{},"-ls"," вместо ",[55,2090,2091],{},"-delete",", чтобы увидеть, что будет удалено.",[16,2094,787],{"id":786},[21,2096,2097],{},"После каждого шага (или в конце) проверьте свободное место:",[113,2099,2101],{"className":115,"code":2100,"language":117,"meta":118,"style":118},"df -h /\n",[55,2102,2103],{"__ignoreMap":118},[122,2104,2105,2107,2109],{"class":124,"line":125},[122,2106,107],{"class":128},[122,2108,506],{"class":131},[122,2110,2111],{"class":218}," /\n",[21,2113,2114],{},"Или для детального анализа:",[113,2116,2118],{"className":115,"code":2117,"language":117,"meta":118,"style":118},"ncdu /\n",[55,2119,2120],{"__ignoreMap":118},[122,2121,2122,2124],{"class":124,"line":125},[122,2123,68],{"class":128},[122,2125,2111],{"class":218},[21,2127,2128],{},"Убедитесь, что свободного места стало достаточно (минимум 10-15% от общего объема для стабильной работы). Также проверьте, что критичные службы работают:",[113,2130,2132],{"className":115,"code":2131,"language":117,"meta":118,"style":118},"systemctl status --failed\n",[55,2133,2134],{"__ignoreMap":118},[122,2135,2136,2139,2142],{"class":124,"line":125},[122,2137,2138],{"class":128},"systemctl",[122,2140,2141],{"class":218}," status",[122,2143,2144],{"class":131}," --failed\n",[16,2146,826],{"id":825},[1460,2148,2150],{"id":2149},"_1-ошибка-no-space-left-on-device-при-попытке-удаления","1. Ошибка \"No space left on device\" при попытке удаления",[21,2152,2153,2154,2156,2157,2160,2161,73],{},"Возможно, удаляется открытый файл (например, лог, который пишется процессом). После удаления такого файла место не освобождается до его закрытия.\n",[25,2155,692],{}," Найдите процесс через ",[55,2158,2159],{},"lsof | grep deleted"," и перезапустите его. Например, ",[55,2162,2163],{},"sudo systemctl restart nginx",[1460,2165,2167],{"id":2166},"_2-система-не-загружается-после-удаления-ядра","2. Система не загружается после удаления ядра",[21,2169,2170,2171,2173],{},"Если случайно удалили все ядра кроме текущего, а текущее повреждено.\n",[25,2172,692],{}," Загрузитесь в rescue-режиме через GRUB и переустановите ядро с LiveCD.",[1460,2175,2177],{"id":2176},"_3-удалены-нужные-файлы-в-varlog","3. Удалены нужные файлы в /var/log",[21,2179,2180,2181,2183,2184,2187,2188,2191],{},"Если вы обрезали активный лог, который еще нужен для отладки.\n",[25,2182,692],{}," Восстановить нельзя, но можно перенаправить логи в новый файл: ",[55,2185,2186],{},"sudo service nginx restart"," (переоткроет лог). В будущем используйте ",[55,2189,2190],{},"truncate"," только для старых файлов.",[1460,2193,2195],{"id":2194},"_4-недостаточно-места-для-выполнения-команд","4. Недостаточно места для выполнения команд",[21,2197,2198,2199,2202,2203,2205,2206,2208],{},"Даже для простых команд (например, ",[55,2200,2201],{},"apt-get clean",") требуется минимум свободного места.\n",[25,2204,692],{}," Удалите самые большие файлы вручную (через ",[55,2207,871],{}," в /tmp или /var/log), чтобы высвободить 100-500 МБ, затем повторите шаги.",[1460,2210,2212],{"id":2211},"_5-ошибки-прав-доступа","5. Ошибки прав доступа",[21,2214,2215,2216,2218,2219,2221,2222,58,2224,58,2226,2229,2230,2232],{},"При удалении файлов в системных директориях без sudo.\n",[25,2217,692],{}," Всегда используйте ",[55,2220,52],{}," для операций в ",[55,2223,57],{},[55,2225,64],{},[55,2227,2228],{},"/opt",". Для пользовательских кэшей (",[55,2231,1948],{},") права не требуются.",[2234,2235],"hr",{},[21,2237,2238],{},[2239,2240,2241],"em",{},"Последнее обновление: 2026-02-15. Проверено на Ubuntu 22.04, Debian 12, CentOS Stream 9.",[960,2243,2244],{},"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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":118,"searchDepth":212,"depth":212,"links":2246},[2247,2248,2249,2250,2254,2258,2262,2263,2264],{"id":18,"depth":212,"text":19},{"id":35,"depth":212,"text":36},{"id":1342,"depth":212,"text":1343},{"id":1454,"depth":212,"text":1455,"children":2251},[2252,2253],{"id":1462,"depth":222,"text":1463},{"id":1504,"depth":222,"text":1505},{"id":1550,"depth":212,"text":1551,"children":2255},[2256,2257],{"id":1557,"depth":222,"text":1558},{"id":1627,"depth":222,"text":1628},{"id":1699,"depth":212,"text":1700,"children":2259},[2260,2261],{"id":1709,"depth":222,"text":1710},{"id":1844,"depth":222,"text":1845},{"id":1939,"depth":212,"text":1940},{"id":786,"depth":212,"text":787},{"id":825,"depth":212,"text":826,"children":2265},[2266,2267,2268,2269,2270],{"id":2149,"depth":222,"text":2150},{"id":2166,"depth":222,"text":2167},{"id":2176,"depth":222,"text":2177},{"id":2194,"depth":222,"text":2195},{"id":2211,"depth":222,"text":2212},"2026-02-15 21:03:39","Пошаговое руководство по очистке диска в Linux. Удаляем кэш пакетов, старые ядра, логи и мусорные файлы. Освободите десятки гигабайт за 20 минут.","easy",[2275,2278,2281,2284],{"question":2276,"answer":2277},"Безопасно ли удалять старые ядра Linux?","Да, но только те, которые не используются текущей системой. Всегда проверяйте список установленных ядер (`dpkg --list | grep linux-image` или `rpm -qa | grep kernel`) и оставляйте как минимум одно запасное.",{"question":2279,"answer":2280},"Можно ли удалить всё подчистую из /tmp?","В большинстве случаев да, так как это временные файлы. Однако некоторые приложения могут использовать /tmp для работы. Лучше удалять файлы старше 10 дней: `find /tmp -type f -atime +10 -delete`.",{"question":2282,"answer":2283},"Почему после очистки место не освобождается?","Чаще всего это происходит из-за удаленных, но всё ещё открытых файлов (например, логи). Проверьте их командой `lsof | grep deleted`. Перезапустите сервис или систему, чтобы полностью освободить место.",{"question":2285,"answer":2286},"Как автоматизировать очистку?","Настройте регулярный запуск `apt-get clean` или `dnf autoremove` через cron. Для логов можно настроить `systemd-journald` с ограничением размера: `SystemMaxUse=500M` в /etc/systemd/journald.conf.",[2288,2291,2294,2297,2300],{"name":2289,"text":2290},"Анализ использования диска","Определите, какие директории и файлы занимают больше всего места с помощью утилиты `ncdu` или `du -sh /*`.",{"name":2292,"text":2293},"Очистка кэша пакетного менеджера","Удалите скопированные архивные файлы пакетов, которые уже установлены, командой `apt-get clean` (Debian/Ubuntu) или `dnf clean all` (Fedora/CentOS).",{"name":2295,"text":2296},"Удаление старых версий ядра","Удалите устаревшие версии ядра, оставив только текущую и одну резервную, через `apt autoremove --purge` или `dnf remove $(package-cleanup --oldkernels --count=2)`.",{"name":2298,"text":2299},"Очистка системных логов","Вращайте и сжимайте старые логи в /var/log, а также ограничьте размер журнала systemd командой `journalctl --vacuum-time=7d` (оставляет логи за 7 дней).",{"name":2301,"text":2302},"Поиск и удаление больших временных файлов","Найдите и удалите крупные файлы в /tmp, ~/.cache и других временных директориях, используя `find` с фильтрами по размеру и времени.",[2304,2305,2306,2307,2308,2309,2310,2311,2312,2313],"очистка диска ubuntu","удалить старые пакеты linux","где занимается место в linux","освободить место на диске debian","чистка кэша apt","удалить старые ядра centos","очистка journald логи","удалить временные файлы linux","disk space full linux","clean disk space ubuntu",{},[2316,2317,2318],"/guides/linux/check-disk-usage","/guides/linux/remove-old-kernels","/errors/linux/disk-space-critical","Гайды по Linux",{"title":1302,"description":2272},"guides/linux/clean-disk-space","В этом гайде вы узнаете, как безопасно и эффективно очистить диск в Linux с помощью встроенных утилит. Мы рассмотрим удаление кэша пакетов, старых версий ядра, системных логов и временных файлов, что позволит быстро восстановить свободное место.",[2324,1041,1336,2325,2326,117,2327],"системное администрирование","yum","journald","disk-usage","jVcoRG0PwMaRBTBkx3debiFSKNxnDLKppBTL2CCVZ0Q",{"id":2330,"title":2331,"appliesTo":2332,"author":11,"body":2337,"canonical":977,"code":2357,"createdAt":2960,"description":2961,"difficulty":980,"draft":981,"estimatedTime":2962,"extension":983,"faq":2963,"howToSteps":2973,"howToTotalTime":2986,"image":977,"keywords":2987,"locale":1026,"meta":2993,"navigation":225,"path":1032,"platform":1029,"related":2994,"section":2998,"seo":2999,"severity":3000,"stem":3001,"summary":3002,"tags":3003,"twitterCreator":977,"twitterSite":977,"type":3006,"updatedAt":2960,"__hash__":3008},"content_ru/errors/linux/no-space-left-on-device.md","Ошибка No space left on device (ENOSPC) в Linux — причины и решение",[2333,2334,2335,2336],"Ubuntu","Debian","CentOS","RHEL",{"type":13,"value":2338,"toc":2941},[2339,2344,2348,2379,2382,2386,2389,2420,2424,2428,2431,2441,2444,2450,2456,2460,2463,2475,2477,2483,2490,2494,2497,2529,2532,2548,2550,2554,2558,2561,2630,2633,2636,2641,2671,2676,2701,2706,2721,2725,2728,2767,2771,2774,2805,2809,2812,2848,2857,2861,2864,2882,2886,2889,2925,2929,2935,2938],[2340,2341,2343],"h1",{"id":2342},"ошибка-no-space-left-on-device-enospc-в-linux","Ошибка No space left on device (ENOSPC) в Linux",[16,2345,2347],{"id":2346},"что-означает-ошибка-enospc","Что означает ошибка ENOSPC",[21,2349,2350,2351,2354,2355,2358,2359,2362,2363,2366,2367,2370,2371,2374,2375,2378],{},"Ошибка ",[25,2352,2353],{},"No space left on device"," (код ошибки ",[25,2356,2357],{},"ENOSPC",") — это стандартная ошибка в системах Linux, которая возникает при попытке записи данных на диск, когда на нём закончилось свободное место. Аббревиатура ENOSPC расшифровывается как ",[25,2360,2361],{},"E","rror ",[25,2364,2365],{},"NO"," ",[25,2368,2369],{},"S","pace ",[25,2372,2373],{},"P","a",[25,2376,2377],{},"C","e — «нет места на устройстве».",[21,2380,2381],{},"Эта ошибка может появиться в любой ситуации, связанной с записью на диск: при установке программ, создании файлов, обновлении системы или работе баз данных.",[16,2383,2385],{"id":2384},"причины-возникновения-ошибки","Причины возникновения ошибки",[21,2387,2388],{},"Существует несколько основных причин появления ошибки ENOSPC:",[41,2390,2391,2397,2403,2409],{},[44,2392,2393,2396],{},[25,2394,2395],{},"Физическое заполнение диска"," — на разделе действительно не осталось свободного места.",[44,2398,2399,2402],{},[25,2400,2401],{},"Исчерпание inodes"," — на диске закончились файловые дескрипторы (иноды), даже если есть свободное место.",[44,2404,2405,2408],{},[25,2406,2407],{},"Квоты пользователей"," — для учётной записи пользователя или группы установлена квота на дисковое пространство.",[44,2410,2411,2414,2415,80,2417,2419],{},[25,2412,2413],{},"Переполнение временных директорий"," — директории ",[55,2416,1421],{},[55,2418,1951],{}," забиты временными файлами.",[16,2421,2423],{"id":2422},"диагностика-проблемы","Диагностика проблемы",[1460,2425,2427],{"id":2426},"проверка-использования-дискового-пространства","Проверка использования дискового пространства",[21,2429,2430],{},"Первым делом проверьте, сколько места доступно на дисках:",[113,2432,2433],{"className":115,"code":116,"language":117,"meta":118,"style":118},[55,2434,2435],{"__ignoreMap":118},[122,2436,2437,2439],{"class":124,"line":125},[122,2438,107],{"class":128},[122,2440,132],{"class":131},[21,2442,2443],{},"Результат покажет использование всех смонтированных разделов:",[113,2445,2448],{"className":2446,"code":2447,"language":143},[141],"Filesystem      Size  Used Avail Use% Mounted on\n/dev/sda1       100G   95G   5G  95% /\n/dev/sdb1       500G  500G     0 100% /mnt/data\n",[55,2449,2447],{"__ignoreMap":118},[21,2451,2452,2453,2455],{},"Если значение в столбце ",[55,2454,1193],{}," близко к 100%, это подтверждает нехватку места.",[1460,2457,2459],{"id":2458},"проверка-количества-inodes","Проверка количества inodes",[21,2461,2462],{},"Иногда место заканчивается из-за большого количества мелких файлов:",[113,2464,2466],{"className":115,"code":2465,"language":117,"meta":118,"style":118},"df -i\n",[55,2467,2468],{"__ignoreMap":118},[122,2469,2470,2472],{"class":124,"line":125},[122,2471,107],{"class":128},[122,2473,2474],{"class":131}," -i\n",[21,2476,137],{},[113,2478,2481],{"className":2479,"code":2480,"language":143},[141],"Filesystem     Inodes IUsed IFree IUse% Mounted on\n/dev/sda1      655360 655360     0 100% /\n",[55,2482,2480],{"__ignoreMap":118},[21,2484,2485,2486,2489],{},"Если ",[55,2487,2488],{},"IUse%"," равен 100%, значит, исчерпаны inodes, а не собственно место на диске.",[1460,2491,2493],{"id":2492},"поиск-крупных-директорий","Поиск крупных директорий",[21,2495,2496],{},"Найдите директории, занимающие больше всего места:",[113,2498,2500],{"className":115,"code":2499,"language":117,"meta":118,"style":118},"du -sh /* 2>/dev/null | sort -rh | head -10\n",[55,2501,2502],{"__ignoreMap":118},[122,2503,2504,2506,2508,2510,2512,2514,2516,2518,2520,2522,2524,2526],{"class":124,"line":125},[122,2505,175],{"class":128},[122,2507,249],{"class":131},[122,2509,1386],{"class":218},[122,2511,1389],{"class":131},[122,2513,256],{"class":255},[122,2515,259],{"class":218},[122,2517,262],{"class":255},[122,2519,265],{"class":128},[122,2521,268],{"class":131},[122,2523,262],{"class":255},[122,2525,273],{"class":128},[122,2527,2528],{"class":131}," -10\n",[21,2530,2531],{},"Для более детального анализа конкретной директории:",[113,2533,2535],{"className":115,"code":2534,"language":117,"meta":118,"style":118},"du -sh /var/*\n",[55,2536,2537],{"__ignoreMap":118},[122,2538,2539,2541,2543,2546],{"class":124,"line":125},[122,2540,175],{"class":128},[122,2542,249],{"class":131},[122,2544,2545],{"class":218}," /var/",[122,2547,1734],{"class":131},[96,2549],{},[16,2551,2553],{"id":2552},"способы-решения-проблемы","Способы решения проблемы",[1460,2555,2557],{"id":2556},"очистка-журналов-системы","Очистка журналов системы",[21,2559,2560],{},"Системные журналы могут занимать много места. Очистите старые логи:",[113,2562,2564],{"className":115,"code":2563,"language":117,"meta":118,"style":118},"# Очистка journald (последние 7 дней)\nsudo journalctl --vacuum-time=7d\n\n# Очистка старых логов\nsudo rm -rf /var/log/*.gz\nsudo rm -rf /var/log/syslog.*\nsudo truncate -s 0 /var/log/syslog\n",[55,2565,2566,2571,2579,2583,2588,2604,2617],{"__ignoreMap":118},[122,2567,2568],{"class":124,"line":125},[122,2569,2570],{"class":208},"# Очистка journald (последние 7 дней)\n",[122,2572,2573,2575,2577],{"class":124,"line":212},[122,2574,52],{"class":128},[122,2576,1879],{"class":218},[122,2578,1882],{"class":131},[122,2580,2581],{"class":124,"line":222},[122,2582,226],{"emptyLinePlaceholder":225},[122,2584,2585],{"class":124,"line":229},[122,2586,2587],{"class":208},"# Очистка старых логов\n",[122,2589,2590,2592,2595,2597,2599,2601],{"class":124,"line":235},[122,2591,52],{"class":128},[122,2593,2594],{"class":218}," rm",[122,2596,2046],{"class":131},[122,2598,1731],{"class":218},[122,2600,1389],{"class":131},[122,2602,2603],{"class":218},".gz\n",[122,2605,2606,2608,2610,2612,2615],{"class":124,"line":241},[122,2607,52],{"class":128},[122,2609,2594],{"class":218},[122,2611,2046],{"class":131},[122,2613,2614],{"class":218}," /var/log/syslog.",[122,2616,1734],{"class":131},[122,2618,2619,2621,2623,2625,2627],{"class":124,"line":395},[122,2620,52],{"class":128},[122,2622,1830],{"class":218},[122,2624,1833],{"class":131},[122,2626,1836],{"class":131},[122,2628,2629],{"class":218}," /var/log/syslog\n",[1460,2631,2292],{"id":2632},"очистка-кэша-пакетного-менеджера",[21,2634,2635],{},"Удалите кэш установленных пакетов:",[21,2637,2638],{},[25,2639,2640],{},"Для Debian/Ubuntu:",[113,2642,2644],{"className":115,"code":2643,"language":117,"meta":118,"style":118},"sudo apt clean\nsudo apt autoremove\nsudo apt-get clean\n",[55,2645,2646,2654,2663],{"__ignoreMap":118},[122,2647,2648,2650,2652],{"class":124,"line":125},[122,2649,52],{"class":128},[122,2651,351],{"class":218},[122,2653,1483],{"class":218},[122,2655,2656,2658,2660],{"class":124,"line":212},[122,2657,52],{"class":128},[122,2659,351],{"class":218},[122,2661,2662],{"class":218}," autoremove\n",[122,2664,2665,2667,2669],{"class":124,"line":222},[122,2666,52],{"class":128},[122,2668,1480],{"class":218},[122,2670,1483],{"class":218},[21,2672,2673],{},[25,2674,2675],{},"Для CentOS/RHEL:",[113,2677,2679],{"className":115,"code":2678,"language":117,"meta":118,"style":118},"sudo yum clean all\nsudo dnf clean all\n",[55,2680,2681,2691],{"__ignoreMap":118},[122,2682,2683,2685,2687,2689],{"class":124,"line":125},[122,2684,52],{"class":128},[122,2686,752],{"class":218},[122,2688,721],{"class":218},[122,2690,1526],{"class":218},[122,2692,2693,2695,2697,2699],{"class":124,"line":212},[122,2694,52],{"class":128},[122,2696,384],{"class":218},[122,2698,721],{"class":218},[122,2700,1526],{"class":218},[21,2702,2703],{},[25,2704,2705],{},"Для Arch Linux:",[113,2707,2709],{"className":115,"code":2708,"language":117,"meta":118,"style":118},"sudo pacman -Scc\n",[55,2710,2711],{"__ignoreMap":118},[122,2712,2713,2715,2718],{"class":124,"line":125},[122,2714,52],{"class":128},[122,2716,2717],{"class":218}," pacman",[122,2719,2720],{"class":131}," -Scc\n",[1460,2722,2724],{"id":2723},"удаление-старых-ядер-системы","Удаление старых ядер системы",[21,2726,2727],{},"Если система давно не обновлялась, старые ядра могут занимать много места:",[113,2729,2731],{"className":115,"code":2730,"language":117,"meta":118,"style":118},"# Для Ubuntu/Debian\nsudo apt autoremove --purge\n\n# Для CentOS/RHEL\nsudo package-cleanup --oldkernels --count=2\n",[55,2732,2733,2738,2748,2752,2757],{"__ignoreMap":118},[122,2734,2735],{"class":124,"line":125},[122,2736,2737],{"class":208},"# Для Ubuntu/Debian\n",[122,2739,2740,2742,2744,2746],{"class":124,"line":212},[122,2741,52],{"class":128},[122,2743,351],{"class":218},[122,2745,733],{"class":218},[122,2747,1603],{"class":131},[122,2749,2750],{"class":124,"line":222},[122,2751,226],{"emptyLinePlaceholder":225},[122,2753,2754],{"class":124,"line":229},[122,2755,2756],{"class":208},"# Для CentOS/RHEL\n",[122,2758,2759,2761,2763,2765],{"class":124,"line":235},[122,2760,52],{"class":128},[122,2762,767],{"class":218},[122,2764,1684],{"class":131},[122,2766,1687],{"class":131},[1460,2768,2770],{"id":2769},"очистка-временных-файлов","Очистка временных файлов",[21,2772,2773],{},"Удалите содержимое временных директорий:",[113,2775,2777],{"className":115,"code":2776,"language":117,"meta":118,"style":118},"sudo rm -rf /tmp/*\nsudo rm -rf /var/tmp/*\n",[55,2778,2779,2792],{"__ignoreMap":118},[122,2780,2781,2783,2785,2787,2790],{"class":124,"line":125},[122,2782,52],{"class":128},[122,2784,2594],{"class":218},[122,2786,2046],{"class":131},[122,2788,2789],{"class":218}," /tmp/",[122,2791,1734],{"class":131},[122,2793,2794,2796,2798,2800,2803],{"class":124,"line":212},[122,2795,52],{"class":128},[122,2797,2594],{"class":218},[122,2799,2046],{"class":131},[122,2801,2802],{"class":218}," /var/tmp/",[122,2804,1734],{"class":131},[1460,2806,2808],{"id":2807},"удаление-крупных-файлов","Удаление крупных файлов",[21,2810,2811],{},"Найдите и удалите большие файлы вручную:",[113,2813,2815],{"className":115,"code":2814,"language":117,"meta":118,"style":118},"# Поиск файлов больше 100 МБ\nsudo find / -type f -size +100M -exec ls -lh {} \\;\n",[55,2816,2817,2822],{"__ignoreMap":118},[122,2818,2819],{"class":124,"line":125},[122,2820,2821],{"class":208},"# Поиск файлов больше 100 МБ\n",[122,2823,2824,2826,2828,2830,2832,2834,2836,2838,2840,2842,2844,2846],{"class":124,"line":212},[122,2825,52],{"class":128},[122,2827,483],{"class":218},[122,2829,1386],{"class":218},[122,2831,489],{"class":131},[122,2833,492],{"class":218},[122,2835,495],{"class":131},[122,2837,498],{"class":218},[122,2839,501],{"class":131},[122,2841,561],{"class":218},[122,2843,564],{"class":131},[122,2845,509],{"class":218},[122,2847,1841],{"class":131},[2849,2850,2851],"blockquote",{},[21,2852,2853,2856],{},[25,2854,2855],{},"Внимание:"," Перед удалением любых файлов убедитесь, что они не являются системными или важными для работы приложений.",[1460,2858,2860],{"id":2859},"расширение-дискового-пространства","Расширение дискового пространства",[21,2862,2863],{},"Если очистка не помогла, рассмотрите возможность:",[152,2865,2866,2869,2879],{},[44,2867,2868],{},"Добавления нового диска и монтирования его в систему",[44,2870,2871,2872,80,2875,2878],{},"Расширения существующего раздела (с помощью ",[55,2873,2874],{},"gparted",[55,2876,2877],{},"resize2fs",")",[44,2880,2881],{},"Создания символических ссылок на новый раздел",[16,2883,2885],{"id":2884},"профилактика-повторного-возникновения","Профилактика повторного возникновения",[21,2887,2888],{},"Чтобы избежать повторения ошибки ENOSPC в будущем:",[41,2890,2891,2897,2906,2912],{},[44,2892,2893,2896],{},[25,2894,2895],{},"Регулярно очищайте систему"," — настройте автоматическую очистку журналов и кэшей.",[44,2898,2899,2902,2903,73],{},[25,2900,2901],{},"Настройте ротацию логов"," — отредактируйте ",[55,2904,2905],{},"/etc/logrotate.conf",[44,2907,2908,2911],{},[25,2909,2910],{},"Мониторинг"," — используйте системы мониторинга (Prometheus, Zabbix) для отслеживания использования диска.",[44,2913,2914,2917,2918,58,2920,1135,2922,2924],{},[25,2915,2916],{},"Разделение директорий"," — размещайте ",[55,2919,1421],{},[55,2921,320],{},[55,2923,61],{}," на отдельных разделах.",[16,2926,2928],{"id":2927},"заключение","Заключение",[21,2930,2350,2931,2934],{},[25,2932,2933],{},"No space left on device (ENOSPC)"," в Linux — частая проблема, с которой сталкиваются системные администраторы и пользователи. В большинстве случаев она решается очисткой диска от ненужных файлов: журналов, кэшей и временных данных. Если регулярно проводить профилактическое обслуживание системы, риск возникновения этой ошибки сводится к минимуму.",[21,2936,2937],{},"При серьёзных проблемах с дисковым пространством рекомендуется пересмотреть архитектуру хранения данных и, при необходимости, расширить дисковую подсистему.",[960,2939,2940],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":118,"searchDepth":212,"depth":212,"links":2942},[2943,2944,2945,2950,2958,2959],{"id":2346,"depth":212,"text":2347},{"id":2384,"depth":212,"text":2385},{"id":2422,"depth":212,"text":2423,"children":2946},[2947,2948,2949],{"id":2426,"depth":222,"text":2427},{"id":2458,"depth":222,"text":2459},{"id":2492,"depth":222,"text":2493},{"id":2552,"depth":212,"text":2553,"children":2951},[2952,2953,2954,2955,2956,2957],{"id":2556,"depth":222,"text":2557},{"id":2632,"depth":222,"text":2292},{"id":2723,"depth":222,"text":2724},{"id":2769,"depth":222,"text":2770},{"id":2807,"depth":222,"text":2808},{"id":2859,"depth":222,"text":2860},{"id":2884,"depth":212,"text":2885},{"id":2927,"depth":212,"text":2928},"2026-02-13 20:54:20","Подробное руководство по диагностике и устранению ошибки «На устройстве не осталось места» (No space left on device, код ENOSPC) в Linux-системах.","15-45 мин",[2964,2967,2970],{"question":2965,"answer":2966},"Почему df показывает свободное место, но ошибка ENOSPC всё равно возникает?","Проблема может быть связана с исчерпанием inodes. Проверьте их количество командой `df -i`. Если файловых дескрипторов не осталось, удалите мелкие файлы.",{"question":2968,"answer":2969},"Можно ли удалить системные файлы для освобождения места?","Не рекомендуется удалять системные файлы вручную. Используйте штатные инструменты очистки: `apt autoremove` (Debian/Ubuntu) или `yum clean all` (CentOS/RHEL).",{"question":2971,"answer":2972},"Как найти самые большие файлы на диске?","Используйте команду `du -sh /* 2>/dev/null | sort -rh | head -10` для поиска крупных директорий, затем углубитесь в найденные папки.",[2974,2977,2980,2983],{"name":2975,"text":2976},"Проверьте использование диска","Выполните команду `df -h` для просмотра использования дискового пространства. Обратите внимание на столбец `Use%` — если значение близко к 100%, место на диске исчерпано.",{"name":2978,"text":2979},"Проверьте количество inodes","Иногда место заканчивается из-за большого количества мелких файлов. Выполните `df -i` для проверки количества inodes. Если `IUse%` равен 100%, удалите лишние файлы.",{"name":2981,"text":2982},"Найдите директории с большим объёмом данных","Используйте `du -sh /var/* 2>/dev/null | sort -rh | head -10` для поиска директорий, занимающих больше всего места. Особое внимание — `/var/log`, `/var/cache`, `/tmp`.",{"name":2984,"text":2985},"Очистите системные журналы","Очистите старые логи: `sudo journalctl --vacuum-time=7d` (удаляет логи старше 7 дней) или вручную удалите содержимое `/var/log` с помощью `sudo rm /var/log/*.gz`.","PT35M",[2353,2357,2988,2989,797,2990,2991,2992,1041],"недостаточно места на диске","освободить место Linux","du -sh","очистка диска Linux","inode",{},[2995,2996,2997],"/errors/linux/permission-denied","/guides/linux/partitioning-with-fdisk","/guides/linux/cleanup-linux","Ошибки Linux",{"title":2331,"description":2961},"high","errors/linux/no-space-left-on-device","Ошибка ENOSPC (No space left on device) возникает, когда на диске заканчивается свободное место. В статье описаны причины появления ошибки, способы диагностики и методы освобождения дискового пространства.",[1029,3004,3005,3006,3007],"disk","storage","error","maintenance","yQcqVUD4EoNMJCM7hLSs6xThVLIzlBtSgBnEagT7TdM",{"id":3010,"title":3011,"appliesTo":3012,"author":11,"body":3017,"canonical":977,"code":977,"createdAt":5899,"description":5900,"difficulty":980,"draft":981,"estimatedTime":982,"extension":983,"faq":5901,"howToSteps":5914,"howToTotalTime":1016,"image":977,"keywords":5927,"locale":1026,"meta":5936,"navigation":225,"path":1033,"platform":1029,"related":5937,"section":1034,"seo":5941,"severity":977,"stem":5942,"summary":5943,"tags":5944,"twitterCreator":977,"twitterSite":977,"type":1044,"updatedAt":5899,"__hash__":5949},"content_ru/guides/linux/automate-disk-cleanup.md","Автоматизация очистки диска в Linux: настройка cron и systemd",[3013,8,3014,3015,3016],"Ubuntu 22.04+","CentOS 8+","Fedora 36+","Arch Linux",{"type":13,"value":3018,"toc":5863},[3019,3021,3027,3041,3069,3072,3074,3077,3208,3212,3218,4188,4193,4211,4216,4262,4266,4269,4331,4335,4338,4581,4586,4610,4614,4618,4621,4725,4736,4740,4746,4793,4802,4824,4828,4832,4879,4883,4926,4930,4948,4952,4955,5087,5091,5096,5161,5167,5169,5172,5292,5294,5298,5317,5321,5331,5358,5362,5369,5401,5405,5426,5429,5452,5456,5467,5471,5481,5492,5496,5503,5527,5529,5531,5535,5539,5545,5610,5630,5634,5637,5710,5720,5730,5739,5803,5806,5810,5813,5824,5829,5854,5860],[16,3020,19],{"id":18},[21,3022,3023,3024,3026],{},"Свободное место на диске сервера или рабочей станции под Linux со временем заполняется временными файлами, кэшем приложений, старыми логами и отладочными дампами. Ручная очистка отнимает время и часто забывается, что приводит к заполнению корневого раздела (",[55,3025,69],{},") и сбоям системы.",[21,3028,3029,3030,3033,3034,80,3037,3040],{},"Этот гайд покажет, как настроить ",[25,3031,3032],{},"безопасную автоматическую очистку"," диска с помощью ",[55,3035,3036],{},"cron",[55,3038,3039],{},"systemd-timer",". Вы сможете:",[152,3042,3043,3050,3056,3066],{},[44,3044,3045,3046,58,3048],{},"Регулярно удалять файлы в ",[55,3047,1421],{},[55,3049,1951],{},[44,3051,3052,3053,3055],{},"Очищать старые логи из ",[55,3054,320],{}," (с учетом политики ротации)",[44,3057,3058,3059,58,3061,58,3063,2878],{},"Удалять устаревший кэш пакетного менеджера (",[55,3060,1336],{},[55,3062,1339],{},[55,3064,3065],{},"pacman",[44,3067,3068],{},"Контролировать размер домашних каталогов пользователей",[21,3070,3071],{},"Все действия безопасны и используют возраст файлов как критерий.",[16,3073,36],{"id":35},[21,3075,3076],{},"Перед настройкой убедитесь, что:",[41,3078,3079,3086,3159],{},[44,3080,49,3081,3083,3084,73],{},[55,3082,52],{}," или доступ к ",[55,3085,1049],{},[44,3087,3088,3089,3091,3092],{},"Установлены утилиты для анализа диска (рекомендуется ",[55,3090,68],{},"):\n",[113,3093,3095],{"className":115,"code":3094,"language":117,"meta":118,"style":118},"# Ubuntu/Debian\nsudo apt update && sudo apt install ncdu\n\n# Fedora/CentOS/RHEL\nsudo dnf install ncdu\n\n# Arch\nsudo pacman -S ncdu\n",[55,3096,3097,3102,3120,3124,3129,3139,3143,3148],{"__ignoreMap":118},[122,3098,3099],{"class":124,"line":125},[122,3100,3101],{"class":208},"# Ubuntu/Debian\n",[122,3103,3104,3106,3108,3110,3112,3114,3116,3118],{"class":124,"line":212},[122,3105,52],{"class":128},[122,3107,351],{"class":218},[122,3109,354],{"class":218},[122,3111,358],{"class":357},[122,3113,52],{"class":128},[122,3115,351],{"class":218},[122,3117,365],{"class":218},[122,3119,368],{"class":218},[122,3121,3122],{"class":124,"line":222},[122,3123,226],{"emptyLinePlaceholder":225},[122,3125,3126],{"class":124,"line":229},[122,3127,3128],{"class":208},"# Fedora/CentOS/RHEL\n",[122,3130,3131,3133,3135,3137],{"class":124,"line":235},[122,3132,52],{"class":128},[122,3134,384],{"class":218},[122,3136,365],{"class":218},[122,3138,368],{"class":218},[122,3140,3141],{"class":124,"line":241},[122,3142,226],{"emptyLinePlaceholder":225},[122,3144,3145],{"class":124,"line":395},[122,3146,3147],{"class":208},"# Arch\n",[122,3149,3150,3152,3154,3157],{"class":124,"line":401},[122,3151,52],{"class":128},[122,3153,2717],{"class":218},[122,3155,3156],{"class":131}," -S",[122,3158,368],{"class":218},[44,3160,3161,3162,3175,3176,3178,3179],{},"Вы знаете, какие каталоги на вашей системе занимают больше всего места. Выполните:\n",[113,3163,3165],{"className":115,"code":3164,"language":117,"meta":118,"style":118},"sudo ncdu /\n",[55,3166,3167],{"__ignoreMap":118},[122,3168,3169,3171,3173],{"class":124,"line":125},[122,3170,52],{"class":128},[122,3172,406],{"class":218},[122,3174,2111],{"class":218},"\nИли, если ",[55,3177,68],{}," нет:\n",[113,3180,3182],{"className":115,"code":3181,"language":117,"meta":118,"style":118},"sudo du -h --max-depth=1 / 2>/dev/null | sort -hr\n",[55,3183,3184],{"__ignoreMap":118},[122,3185,3186,3188,3190,3192,3195,3197,3199,3201,3203,3205],{"class":124,"line":125},[122,3187,52],{"class":128},[122,3189,246],{"class":218},[122,3191,506],{"class":131},[122,3193,3194],{"class":131}," --max-depth=1",[122,3196,1386],{"class":218},[122,3198,256],{"class":255},[122,3200,259],{"class":218},[122,3202,262],{"class":255},[122,3204,265],{"class":128},[122,3206,3207],{"class":131}," -hr\n",[16,3209,3211],{"id":3210},"шаг-1-создание-скрипта-очистки","Шаг 1: Создание скрипта очистки",[21,3213,3214,3215,707],{},"Создайте файл, например, ",[55,3216,3217],{},"/usr/local/bin/disk-cleanup.sh",[113,3219,3221],{"className":115,"code":3220,"language":117,"meta":118,"style":118},"#!/usr/bin/env bash\n# disk-cleanup.sh — автоматическая очистка диска в Linux\n# Удаляет временные файлы, старые логи и кэш старше N дней.\n# Безопасность: проверяет, что удаляемые пути существуют.\n\nset -euo pipefail  # Безопасный режим bash\n\n# Конфигурация (измените под себя)\nTMP_DIRS=(\"/tmp\" \"/var/tmp\")\nLOG_DIRS=(\"/var/log\")\nCACHE_DIRS=(\n    \"/var/cache/apt/archives/partial\"\n    \"/var/cache/dnf\"\n    \"/var/cache/pacman/pkg\"\n    \"/root/.cache\"\n)\nDAYS_OLD=7  # Удалять файлы старше 7 дней\nMIN_FREE_PERCENT=10  # Минимальный свободный процент для запуска (необязательно)\n\n# Функция для безопасного удаления файлов старше N дней\nclean_directory() {\n    local dir=\"$1\"\n    local days=\"$2\"\n    \n    if [[ ! -d \"$dir\" ]]; then\n        echo \"⚠️ Каталог $dir не существует, пропускаем.\"\n        return 0\n    fi\n    \n    echo \"🧹 Очищаем $dir (файлы старше $days дней)...\"\n    \n    # Находим и удаляем файлы, но не сами каталоги\n    find \"$dir\" -type f -mtime +\"$days\" -print -delete 2>/dev/null || true\n    \n    # Удаляем пустые каталоги (глубина 1, чтобы не затронуть структуру)\n    find \"$dir\" -mindepth 1 -depth -type d -empty -delete 2>/dev/null || true\n}\n\n# Функция для очистки кэша пакетных менеджеров\nclean_package_cache() {\n    echo \"📦 Очистка кэша пакетных менеджеров...\"\n    \n    # APT (Debian/Ubuntu)\n    if command -v apt-get &>/dev/null; then\n        echo \"  → APT: удаление устаревших .deb файлов...\"\n        apt-get clean -y 2>/dev/null || true\n    fi\n    \n    # DNF (Fedora/RHEL/CentOS)\n    if command -v dnf &>/dev/null; then\n        echo \"  → DNF: удаление устаревших пакетов...\"\n        dnf clean all -y 2>/dev/null || true\n    fi\n    \n    # Pacman (Arch)\n    if command -v pacman &>/dev/null; then\n        echo \"  → Pacman: удаление устаревших пакетов...\"\n        pacman -Sc --noconfirm 2>/dev/null || true\n    fi\n}\n\n# Основная логика\necho \"🚀 Начало очистки диска $(date)\"\n\n# 1. Временные файлы\nfor dir in \"${TMP_DIRS[@]}\"; do\n    clean_directory \"$dir\" \"$DAYS_OLD\"\ndone\n\n# 2. Кэш пакетных менеджеров\nclean_package_cache\n\n# 3. Логи (только старые файлы, не трогаем текущие)\nfor dir in \"${LOG_DIRS[@]}\"; do\n    # Удаляем сжатые и старые логи, но оставляем последние 7 файлов\n    if [[ -d \"$dir\" ]]; then\n        echo \"📄 Очистка логов в $dir (файлы старше $DAYS_OLD дней)...\"\n        find \"$dir\" -type f -name \"*.log.*\" -mtime +\"$DAYS_OLD\" -print -delete 2>/dev/null || true\n        find \"$dir\" -type f -name \"*.gz\" -mtime +\"$DAYS_OLD\" -print -delete 2>/dev/null || true\n    fi\ndone\n\n# 4. Дополнительно: кэш пользователей (осторожно!)\n# Раскомментируйте, если нужно:\n# clean_directory \"/home/*/.cache\" \"$DAYS_OLD\"\n\necho \"✅ Очистка завершена $(date)\"\necho \"📊 Текущее использование диска:\"\ndf -h / 2>/dev/null || true\n",[55,3222,3223,3228,3233,3238,3243,3247,3261,3265,3270,3290,3304,3314,3319,3324,3330,3336,3341,3355,3369,3374,3380,3389,3409,3426,3432,3461,3475,3484,3490,3495,3515,3520,3526,3567,3572,3578,3616,3622,3627,3633,3641,3649,3654,3660,3684,3692,3711,3716,3721,3727,3746,3754,3774,3779,3784,3790,3809,3817,3837,3842,3847,3852,3858,3873,3878,3884,3916,3935,3941,3946,3952,3958,3963,3969,3992,3998,4018,4034,4074,4113,4118,4123,4128,4134,4140,4146,4151,4163,4171],{"__ignoreMap":118},[122,3224,3225],{"class":124,"line":125},[122,3226,3227],{"class":208},"#!/usr/bin/env bash\n",[122,3229,3230],{"class":124,"line":212},[122,3231,3232],{"class":208},"# disk-cleanup.sh — автоматическая очистка диска в Linux\n",[122,3234,3235],{"class":124,"line":222},[122,3236,3237],{"class":208},"# Удаляет временные файлы, старые логи и кэш старше N дней.\n",[122,3239,3240],{"class":124,"line":229},[122,3241,3242],{"class":208},"# Безопасность: проверяет, что удаляемые пути существуют.\n",[122,3244,3245],{"class":124,"line":235},[122,3246,226],{"emptyLinePlaceholder":225},[122,3248,3249,3252,3255,3258],{"class":124,"line":241},[122,3250,3251],{"class":131},"set",[122,3253,3254],{"class":131}," -euo",[122,3256,3257],{"class":218}," pipefail",[122,3259,3260],{"class":208},"  # Безопасный режим bash\n",[122,3262,3263],{"class":124,"line":395},[122,3264,226],{"emptyLinePlaceholder":225},[122,3266,3267],{"class":124,"line":401},[122,3268,3269],{"class":208},"# Конфигурация (измените под себя)\n",[122,3271,3272,3275,3278,3281,3284,3287],{"class":124,"line":1805},[122,3273,3274],{"class":357},"TMP_DIRS",[122,3276,3277],{"class":255},"=",[122,3279,3280],{"class":357},"(",[122,3282,3283],{"class":218},"\"/tmp\"",[122,3285,3286],{"class":218}," \"/var/tmp\"",[122,3288,3289],{"class":357},")\n",[122,3291,3292,3295,3297,3299,3302],{"class":124,"line":1907},[122,3293,3294],{"class":357},"LOG_DIRS",[122,3296,3277],{"class":255},[122,3298,3280],{"class":357},[122,3300,3301],{"class":218},"\"/var/log\"",[122,3303,3289],{"class":357},[122,3305,3306,3309,3311],{"class":124,"line":1913},[122,3307,3308],{"class":357},"CACHE_DIRS",[122,3310,3277],{"class":255},[122,3312,3313],{"class":357},"(\n",[122,3315,3316],{"class":124,"line":1919},[122,3317,3318],{"class":218},"    \"/var/cache/apt/archives/partial\"\n",[122,3320,3321],{"class":124,"line":1925},[122,3322,3323],{"class":218},"    \"/var/cache/dnf\"\n",[122,3325,3327],{"class":124,"line":3326},14,[122,3328,3329],{"class":218},"    \"/var/cache/pacman/pkg\"\n",[122,3331,3333],{"class":124,"line":3332},15,[122,3334,3335],{"class":218},"    \"/root/.cache\"\n",[122,3337,3339],{"class":124,"line":3338},16,[122,3340,3289],{"class":357},[122,3342,3344,3347,3349,3352],{"class":124,"line":3343},17,[122,3345,3346],{"class":357},"DAYS_OLD",[122,3348,3277],{"class":255},[122,3350,3351],{"class":218},"7",[122,3353,3354],{"class":208},"  # Удалять файлы старше 7 дней\n",[122,3356,3358,3361,3363,3366],{"class":124,"line":3357},18,[122,3359,3360],{"class":357},"MIN_FREE_PERCENT",[122,3362,3277],{"class":255},[122,3364,3365],{"class":218},"10",[122,3367,3368],{"class":208},"  # Минимальный свободный процент для запуска (необязательно)\n",[122,3370,3372],{"class":124,"line":3371},19,[122,3373,226],{"emptyLinePlaceholder":225},[122,3375,3377],{"class":124,"line":3376},20,[122,3378,3379],{"class":208},"# Функция для безопасного удаления файлов старше N дней\n",[122,3381,3383,3386],{"class":124,"line":3382},21,[122,3384,3385],{"class":128},"clean_directory",[122,3387,3388],{"class":357},"() {\n",[122,3390,3392,3395,3398,3400,3403,3406],{"class":124,"line":3391},22,[122,3393,3394],{"class":255},"    local",[122,3396,3397],{"class":357}," dir",[122,3399,3277],{"class":255},[122,3401,3402],{"class":218},"\"",[122,3404,3405],{"class":131},"$1",[122,3407,3408],{"class":218},"\"\n",[122,3410,3412,3414,3417,3419,3421,3424],{"class":124,"line":3411},23,[122,3413,3394],{"class":255},[122,3415,3416],{"class":357}," days",[122,3418,3277],{"class":255},[122,3420,3402],{"class":218},[122,3422,3423],{"class":131},"$2",[122,3425,3408],{"class":218},[122,3427,3429],{"class":124,"line":3428},24,[122,3430,3431],{"class":357},"    \n",[122,3433,3435,3438,3441,3444,3447,3450,3453,3455,3458],{"class":124,"line":3434},25,[122,3436,3437],{"class":255},"    if",[122,3439,3440],{"class":357}," [[ ",[122,3442,3443],{"class":255},"!",[122,3445,3446],{"class":255}," -d",[122,3448,3449],{"class":218}," \"",[122,3451,3452],{"class":357},"$dir",[122,3454,3402],{"class":218},[122,3456,3457],{"class":357}," ]]; ",[122,3459,3460],{"class":255},"then\n",[122,3462,3464,3467,3470,3472],{"class":124,"line":3463},26,[122,3465,3466],{"class":131},"        echo",[122,3468,3469],{"class":218}," \"⚠️ Каталог ",[122,3471,3452],{"class":357},[122,3473,3474],{"class":218}," не существует, пропускаем.\"\n",[122,3476,3478,3481],{"class":124,"line":3477},27,[122,3479,3480],{"class":255},"        return",[122,3482,3483],{"class":131}," 0\n",[122,3485,3487],{"class":124,"line":3486},28,[122,3488,3489],{"class":255},"    fi\n",[122,3491,3493],{"class":124,"line":3492},29,[122,3494,3431],{"class":357},[122,3496,3498,3501,3504,3506,3509,3512],{"class":124,"line":3497},30,[122,3499,3500],{"class":131},"    echo",[122,3502,3503],{"class":218}," \"🧹 Очищаем ",[122,3505,3452],{"class":357},[122,3507,3508],{"class":218}," (файлы старше ",[122,3510,3511],{"class":357},"$days",[122,3513,3514],{"class":218}," дней)...\"\n",[122,3516,3518],{"class":124,"line":3517},31,[122,3519,3431],{"class":357},[122,3521,3523],{"class":124,"line":3522},32,[122,3524,3525],{"class":208},"    # Находим и удаляем файлы, но не сами каталоги\n",[122,3527,3529,3532,3534,3536,3538,3540,3542,3544,3547,3549,3551,3554,3557,3559,3561,3564],{"class":124,"line":3528},33,[122,3530,3531],{"class":128},"    find",[122,3533,3449],{"class":218},[122,3535,3452],{"class":357},[122,3537,3402],{"class":218},[122,3539,489],{"class":131},[122,3541,492],{"class":218},[122,3543,1764],{"class":131},[122,3545,3546],{"class":218}," +\"",[122,3548,3511],{"class":357},[122,3550,3402],{"class":218},[122,3552,3553],{"class":131}," -print",[122,3555,3556],{"class":131}," -delete",[122,3558,256],{"class":255},[122,3560,259],{"class":218},[122,3562,3563],{"class":255}," ||",[122,3565,3566],{"class":131}," true\n",[122,3568,3570],{"class":124,"line":3569},34,[122,3571,3431],{"class":357},[122,3573,3575],{"class":124,"line":3574},35,[122,3576,3577],{"class":208},"    # Удаляем пустые каталоги (глубина 1, чтобы не затронуть структуру)\n",[122,3579,3581,3583,3585,3587,3589,3592,3595,3598,3600,3603,3606,3608,3610,3612,3614],{"class":124,"line":3580},36,[122,3582,3531],{"class":128},[122,3584,3449],{"class":218},[122,3586,3452],{"class":357},[122,3588,3402],{"class":218},[122,3590,3591],{"class":131}," -mindepth",[122,3593,3594],{"class":131}," 1",[122,3596,3597],{"class":131}," -depth",[122,3599,489],{"class":131},[122,3601,3602],{"class":218}," d",[122,3604,3605],{"class":131}," -empty",[122,3607,3556],{"class":131},[122,3609,256],{"class":255},[122,3611,259],{"class":218},[122,3613,3563],{"class":255},[122,3615,3566],{"class":131},[122,3617,3619],{"class":124,"line":3618},37,[122,3620,3621],{"class":357},"}\n",[122,3623,3625],{"class":124,"line":3624},38,[122,3626,226],{"emptyLinePlaceholder":225},[122,3628,3630],{"class":124,"line":3629},39,[122,3631,3632],{"class":208},"# Функция для очистки кэша пакетных менеджеров\n",[122,3634,3636,3639],{"class":124,"line":3635},40,[122,3637,3638],{"class":128},"clean_package_cache",[122,3640,3388],{"class":357},[122,3642,3644,3646],{"class":124,"line":3643},41,[122,3645,3500],{"class":131},[122,3647,3648],{"class":218}," \"📦 Очистка кэша пакетных менеджеров...\"\n",[122,3650,3652],{"class":124,"line":3651},42,[122,3653,3431],{"class":357},[122,3655,3657],{"class":124,"line":3656},43,[122,3658,3659],{"class":208},"    # APT (Debian/Ubuntu)\n",[122,3661,3663,3665,3668,3671,3673,3676,3679,3682],{"class":124,"line":3662},44,[122,3664,3437],{"class":255},[122,3666,3667],{"class":131}," command",[122,3669,3670],{"class":131}," -v",[122,3672,1480],{"class":218},[122,3674,3675],{"class":357}," &",[122,3677,3678],{"class":255},">",[122,3680,3681],{"class":357},"/dev/null; ",[122,3683,3460],{"class":255},[122,3685,3687,3689],{"class":124,"line":3686},45,[122,3688,3466],{"class":131},[122,3690,3691],{"class":218}," \"  → APT: удаление устаревших .deb файлов...\"\n",[122,3693,3695,3698,3700,3703,3705,3707,3709],{"class":124,"line":3694},46,[122,3696,3697],{"class":128},"        apt-get",[122,3699,721],{"class":218},[122,3701,3702],{"class":131}," -y",[122,3704,256],{"class":255},[122,3706,259],{"class":218},[122,3708,3563],{"class":255},[122,3710,3566],{"class":131},[122,3712,3714],{"class":124,"line":3713},47,[122,3715,3489],{"class":255},[122,3717,3719],{"class":124,"line":3718},48,[122,3720,3431],{"class":357},[122,3722,3724],{"class":124,"line":3723},49,[122,3725,3726],{"class":208},"    # DNF (Fedora/RHEL/CentOS)\n",[122,3728,3730,3732,3734,3736,3738,3740,3742,3744],{"class":124,"line":3729},50,[122,3731,3437],{"class":255},[122,3733,3667],{"class":131},[122,3735,3670],{"class":131},[122,3737,384],{"class":218},[122,3739,3675],{"class":357},[122,3741,3678],{"class":255},[122,3743,3681],{"class":357},[122,3745,3460],{"class":255},[122,3747,3749,3751],{"class":124,"line":3748},51,[122,3750,3466],{"class":131},[122,3752,3753],{"class":218}," \"  → DNF: удаление устаревших пакетов...\"\n",[122,3755,3757,3760,3762,3764,3766,3768,3770,3772],{"class":124,"line":3756},52,[122,3758,3759],{"class":128},"        dnf",[122,3761,721],{"class":218},[122,3763,757],{"class":218},[122,3765,3702],{"class":131},[122,3767,256],{"class":255},[122,3769,259],{"class":218},[122,3771,3563],{"class":255},[122,3773,3566],{"class":131},[122,3775,3777],{"class":124,"line":3776},53,[122,3778,3489],{"class":255},[122,3780,3782],{"class":124,"line":3781},54,[122,3783,3431],{"class":357},[122,3785,3787],{"class":124,"line":3786},55,[122,3788,3789],{"class":208},"    # Pacman (Arch)\n",[122,3791,3793,3795,3797,3799,3801,3803,3805,3807],{"class":124,"line":3792},56,[122,3794,3437],{"class":255},[122,3796,3667],{"class":131},[122,3798,3670],{"class":131},[122,3800,2717],{"class":218},[122,3802,3675],{"class":357},[122,3804,3678],{"class":255},[122,3806,3681],{"class":357},[122,3808,3460],{"class":255},[122,3810,3812,3814],{"class":124,"line":3811},57,[122,3813,3466],{"class":131},[122,3815,3816],{"class":218}," \"  → Pacman: удаление устаревших пакетов...\"\n",[122,3818,3820,3823,3826,3829,3831,3833,3835],{"class":124,"line":3819},58,[122,3821,3822],{"class":128},"        pacman",[122,3824,3825],{"class":131}," -Sc",[122,3827,3828],{"class":131}," --noconfirm",[122,3830,256],{"class":255},[122,3832,259],{"class":218},[122,3834,3563],{"class":255},[122,3836,3566],{"class":131},[122,3838,3840],{"class":124,"line":3839},59,[122,3841,3489],{"class":255},[122,3843,3845],{"class":124,"line":3844},60,[122,3846,3621],{"class":357},[122,3848,3850],{"class":124,"line":3849},61,[122,3851,226],{"emptyLinePlaceholder":225},[122,3853,3855],{"class":124,"line":3854},62,[122,3856,3857],{"class":208},"# Основная логика\n",[122,3859,3861,3864,3867,3870],{"class":124,"line":3860},63,[122,3862,3863],{"class":131},"echo",[122,3865,3866],{"class":218}," \"🚀 Начало очистки диска $(",[122,3868,3869],{"class":128},"date",[122,3871,3872],{"class":218},")\"\n",[122,3874,3876],{"class":124,"line":3875},64,[122,3877,226],{"emptyLinePlaceholder":225},[122,3879,3881],{"class":124,"line":3880},65,[122,3882,3883],{"class":208},"# 1. Временные файлы\n",[122,3885,3887,3890,3893,3896,3899,3901,3904,3907,3910,3913],{"class":124,"line":3886},66,[122,3888,3889],{"class":255},"for",[122,3891,3892],{"class":357}," dir ",[122,3894,3895],{"class":255},"in",[122,3897,3898],{"class":218}," \"${",[122,3900,3274],{"class":357},[122,3902,3903],{"class":218},"[",[122,3905,3906],{"class":255},"@",[122,3908,3909],{"class":218},"]}\"",[122,3911,3912],{"class":357},"; ",[122,3914,3915],{"class":255},"do\n",[122,3917,3919,3922,3924,3926,3928,3930,3933],{"class":124,"line":3918},67,[122,3920,3921],{"class":128},"    clean_directory",[122,3923,3449],{"class":218},[122,3925,3452],{"class":357},[122,3927,3402],{"class":218},[122,3929,3449],{"class":218},[122,3931,3932],{"class":357},"$DAYS_OLD",[122,3934,3408],{"class":218},[122,3936,3938],{"class":124,"line":3937},68,[122,3939,3940],{"class":255},"done\n",[122,3942,3944],{"class":124,"line":3943},69,[122,3945,226],{"emptyLinePlaceholder":225},[122,3947,3949],{"class":124,"line":3948},70,[122,3950,3951],{"class":208},"# 2. Кэш пакетных менеджеров\n",[122,3953,3955],{"class":124,"line":3954},71,[122,3956,3957],{"class":128},"clean_package_cache\n",[122,3959,3961],{"class":124,"line":3960},72,[122,3962,226],{"emptyLinePlaceholder":225},[122,3964,3966],{"class":124,"line":3965},73,[122,3967,3968],{"class":208},"# 3. Логи (только старые файлы, не трогаем текущие)\n",[122,3970,3972,3974,3976,3978,3980,3982,3984,3986,3988,3990],{"class":124,"line":3971},74,[122,3973,3889],{"class":255},[122,3975,3892],{"class":357},[122,3977,3895],{"class":255},[122,3979,3898],{"class":218},[122,3981,3294],{"class":357},[122,3983,3903],{"class":218},[122,3985,3906],{"class":255},[122,3987,3909],{"class":218},[122,3989,3912],{"class":357},[122,3991,3915],{"class":255},[122,3993,3995],{"class":124,"line":3994},75,[122,3996,3997],{"class":208},"    # Удаляем сжатые и старые логи, но оставляем последние 7 файлов\n",[122,3999,4001,4003,4005,4008,4010,4012,4014,4016],{"class":124,"line":4000},76,[122,4002,3437],{"class":255},[122,4004,3440],{"class":357},[122,4006,4007],{"class":255},"-d",[122,4009,3449],{"class":218},[122,4011,3452],{"class":357},[122,4013,3402],{"class":218},[122,4015,3457],{"class":357},[122,4017,3460],{"class":255},[122,4019,4021,4023,4026,4028,4030,4032],{"class":124,"line":4020},77,[122,4022,3466],{"class":131},[122,4024,4025],{"class":218}," \"📄 Очистка логов в ",[122,4027,3452],{"class":357},[122,4029,3508],{"class":218},[122,4031,3932],{"class":357},[122,4033,3514],{"class":218},[122,4035,4037,4040,4042,4044,4046,4048,4050,4052,4054,4056,4058,4060,4062,4064,4066,4068,4070,4072],{"class":124,"line":4036},78,[122,4038,4039],{"class":128},"        find",[122,4041,3449],{"class":218},[122,4043,3452],{"class":357},[122,4045,3402],{"class":218},[122,4047,489],{"class":131},[122,4049,492],{"class":218},[122,4051,1758],{"class":131},[122,4053,1787],{"class":218},[122,4055,1764],{"class":131},[122,4057,3546],{"class":218},[122,4059,3932],{"class":357},[122,4061,3402],{"class":218},[122,4063,3553],{"class":131},[122,4065,3556],{"class":131},[122,4067,256],{"class":255},[122,4069,259],{"class":218},[122,4071,3563],{"class":255},[122,4073,3566],{"class":131},[122,4075,4077,4079,4081,4083,4085,4087,4089,4091,4093,4095,4097,4099,4101,4103,4105,4107,4109,4111],{"class":124,"line":4076},79,[122,4078,4039],{"class":128},[122,4080,3449],{"class":218},[122,4082,3452],{"class":357},[122,4084,3402],{"class":218},[122,4086,489],{"class":131},[122,4088,492],{"class":218},[122,4090,1758],{"class":131},[122,4092,1761],{"class":218},[122,4094,1764],{"class":131},[122,4096,3546],{"class":218},[122,4098,3932],{"class":357},[122,4100,3402],{"class":218},[122,4102,3553],{"class":131},[122,4104,3556],{"class":131},[122,4106,256],{"class":255},[122,4108,259],{"class":218},[122,4110,3563],{"class":255},[122,4112,3566],{"class":131},[122,4114,4116],{"class":124,"line":4115},80,[122,4117,3489],{"class":255},[122,4119,4121],{"class":124,"line":4120},81,[122,4122,3940],{"class":255},[122,4124,4126],{"class":124,"line":4125},82,[122,4127,226],{"emptyLinePlaceholder":225},[122,4129,4131],{"class":124,"line":4130},83,[122,4132,4133],{"class":208},"# 4. Дополнительно: кэш пользователей (осторожно!)\n",[122,4135,4137],{"class":124,"line":4136},84,[122,4138,4139],{"class":208},"# Раскомментируйте, если нужно:\n",[122,4141,4143],{"class":124,"line":4142},85,[122,4144,4145],{"class":208},"# clean_directory \"/home/*/.cache\" \"$DAYS_OLD\"\n",[122,4147,4149],{"class":124,"line":4148},86,[122,4150,226],{"emptyLinePlaceholder":225},[122,4152,4154,4156,4159,4161],{"class":124,"line":4153},87,[122,4155,3863],{"class":131},[122,4157,4158],{"class":218}," \"✅ Очистка завершена $(",[122,4160,3869],{"class":128},[122,4162,3872],{"class":218},[122,4164,4166,4168],{"class":124,"line":4165},88,[122,4167,3863],{"class":131},[122,4169,4170],{"class":218}," \"📊 Текущее использование диска:\"\n",[122,4172,4174,4176,4178,4180,4182,4184,4186],{"class":124,"line":4173},89,[122,4175,107],{"class":128},[122,4177,506],{"class":131},[122,4179,1386],{"class":218},[122,4181,256],{"class":255},[122,4183,259],{"class":218},[122,4185,3563],{"class":255},[122,4187,3566],{"class":131},[21,4189,4190],{},[25,4191,4192],{},"Сделайте скрипт исполняемым:",[113,4194,4196],{"className":115,"code":4195,"language":117,"meta":118,"style":118},"sudo chmod +x /usr/local/bin/disk-cleanup.sh\n",[55,4197,4198],{"__ignoreMap":118},[122,4199,4200,4202,4205,4208],{"class":124,"line":125},[122,4201,52],{"class":128},[122,4203,4204],{"class":218}," chmod",[122,4206,4207],{"class":218}," +x",[122,4209,4210],{"class":218}," /usr/local/bin/disk-cleanup.sh\n",[21,4212,4213],{},[25,4214,4215],{},"Комментарии к скрипту:",[152,4217,4218,4224,4233,4240,4249],{},[44,4219,4220,4223],{},[55,4221,4222],{},"set -euo pipefail"," — безопасный режим: скрипт прервётся при ошибках.",[44,4225,4226,4229,4230,4232],{},[55,4227,4228],{},"DAYS_OLD=7"," — изменяйте под политику (например, 3 дня для ",[55,4231,1421],{},", 30 для логов).",[44,4234,4235,4236,4239],{},"Мы ",[25,4237,4238],{},"не удаляем"," каталоги, только файлы и пустые подкаталоги.",[44,4241,4242,4244,4245,4248],{},[55,4243,2201],{}," удаляет локальный кэш ",[55,4246,4247],{},".deb",", но не конфигурации.",[44,4250,4251,4252,58,4255,4258,4259,4261],{},"Для кэша браузеров (",[55,4253,4254],{},"~/.cache/mozilla",[55,4256,4257],{},"~/.cache/google-chrome",") добавьте путь в ",[55,4260,3308],{},", но тестируйте осторожно.",[16,4263,4265],{"id":4264},"шаг-2-настройка-автоматического-запуска-через-cron","Шаг 2: Настройка автоматического запуска через cron",[21,4267,4268],{},"Простой и универсальный способ.",[41,4270,4271,4289,4328],{},[44,4272,4273,4274],{},"Откройте crontab для root:",[113,4275,4277],{"className":115,"code":4276,"language":117,"meta":118,"style":118},"sudo crontab -e\n",[55,4278,4279],{"__ignoreMap":118},[122,4280,4281,4283,4286],{"class":124,"line":125},[122,4282,52],{"class":128},[122,4284,4285],{"class":218}," crontab",[122,4287,4288],{"class":131}," -e\n",[44,4290,4291,4292,4302,4305,4308],{},"Добавьте строку для ежедневного запуска в 2:00 ночи:",[113,4293,4296],{"className":4294,"code":4295,"language":3036,"meta":118,"style":118},"language-cron shiki shiki-themes github-light github-dark","0 2 * * * /usr/local/bin/disk-cleanup.sh >> /var/log/disk-cleanup.log 2>&1\n",[55,4297,4298],{"__ignoreMap":118},[122,4299,4300],{"class":124,"line":125},[122,4301,4295],{},[4303,4304],"br",{},[25,4306,4307],{},"Пояснение:",[152,4309,4310,4316,4322],{},[44,4311,4312,4315],{},[55,4313,4314],{},"0 2 * * *"," — каждый день в 02:00.",[44,4317,4318,4321],{},[55,4319,4320],{},">> /var/log/disk-cleanup.log 2>&1"," — весь вывод (stdout и stderr) пишется в лог.",[44,4323,4324,4325,4327],{},"Лог можно ротировать через ",[55,4326,953],{}," (см. Шаг 4).",[44,4329,4330],{},"Сохраните и выйдите. Cron автоматически применит расписание.",[1460,4332,4334],{"id":4333},"альтернатива-systemd-timer-рекомендуется-для-современных-систем","Альтернатива: systemd-timer (рекомендуется для современных систем)",[21,4336,4337],{},"Если вы используете systemd (Ubuntu 22.04+, Fedora, CentOS 8+), это гибче и надёжнее.",[41,4339,4340,4429,4515,4547],{},[44,4341,4342,4343],{},"Создайте service-файл:",[113,4344,4346],{"className":115,"code":4345,"language":117,"meta":118,"style":118},"sudo tee /etc/systemd/system/disk-cleanup.service > /dev/null \u003C\u003C'EOF'\n[Unit]\nDescription=Disk Cleanup Service\nWants=network-online.target\nAfter=network-online.target\n\n[Service]\nType=oneshot\nExecStart=/usr/local/bin/disk-cleanup.sh\n# Запуск от root, но можно от другого пользователя через User=\n# User=someuser\n# Group=somegroup\nEOF\n",[55,4347,4348,4370,4375,4380,4385,4390,4394,4399,4404,4409,4414,4419,4424],{"__ignoreMap":118},[122,4349,4350,4352,4355,4358,4361,4364,4367],{"class":124,"line":125},[122,4351,52],{"class":128},[122,4353,4354],{"class":218}," tee",[122,4356,4357],{"class":218}," /etc/systemd/system/disk-cleanup.service",[122,4359,4360],{"class":255}," >",[122,4362,4363],{"class":218}," /dev/null",[122,4365,4366],{"class":255}," \u003C\u003C",[122,4368,4369],{"class":218},"'EOF'\n",[122,4371,4372],{"class":124,"line":212},[122,4373,4374],{"class":218},"[Unit]\n",[122,4376,4377],{"class":124,"line":222},[122,4378,4379],{"class":218},"Description=Disk Cleanup Service\n",[122,4381,4382],{"class":124,"line":229},[122,4383,4384],{"class":218},"Wants=network-online.target\n",[122,4386,4387],{"class":124,"line":235},[122,4388,4389],{"class":218},"After=network-online.target\n",[122,4391,4392],{"class":124,"line":241},[122,4393,226],{"emptyLinePlaceholder":225},[122,4395,4396],{"class":124,"line":395},[122,4397,4398],{"class":218},"[Service]\n",[122,4400,4401],{"class":124,"line":401},[122,4402,4403],{"class":218},"Type=oneshot\n",[122,4405,4406],{"class":124,"line":1805},[122,4407,4408],{"class":218},"ExecStart=/usr/local/bin/disk-cleanup.sh\n",[122,4410,4411],{"class":124,"line":1907},[122,4412,4413],{"class":218},"# Запуск от root, но можно от другого пользователя через User=\n",[122,4415,4416],{"class":124,"line":1913},[122,4417,4418],{"class":218},"# User=someuser\n",[122,4420,4421],{"class":124,"line":1919},[122,4422,4423],{"class":218},"# Group=somegroup\n",[122,4425,4426],{"class":124,"line":1925},[122,4427,4428],{"class":218},"EOF\n",[44,4430,4431,4432],{},"Создайте timer-файл:",[113,4433,4435],{"className":115,"code":4434,"language":117,"meta":118,"style":118},"sudo tee /etc/systemd/system/disk-cleanup.timer > /dev/null \u003C\u003C'EOF'\n[Unit]\nDescription=Run disk cleanup daily\nRequires=disk-cleanup.service\n\n[Timer]\nOnCalendar=daily\nPersistent=true\n# RandomDelaySec=1h  # Раскомментируйте для распределения нагрузки\n# Убедитесь, что время не пересекается с другими задачами\n\n[Install]\nWantedBy=timers.target\nEOF\n",[55,4436,4437,4454,4458,4463,4468,4472,4477,4482,4487,4492,4497,4501,4506,4511],{"__ignoreMap":118},[122,4438,4439,4441,4443,4446,4448,4450,4452],{"class":124,"line":125},[122,4440,52],{"class":128},[122,4442,4354],{"class":218},[122,4444,4445],{"class":218}," /etc/systemd/system/disk-cleanup.timer",[122,4447,4360],{"class":255},[122,4449,4363],{"class":218},[122,4451,4366],{"class":255},[122,4453,4369],{"class":218},[122,4455,4456],{"class":124,"line":212},[122,4457,4374],{"class":218},[122,4459,4460],{"class":124,"line":222},[122,4461,4462],{"class":218},"Description=Run disk cleanup daily\n",[122,4464,4465],{"class":124,"line":229},[122,4466,4467],{"class":218},"Requires=disk-cleanup.service\n",[122,4469,4470],{"class":124,"line":235},[122,4471,226],{"emptyLinePlaceholder":225},[122,4473,4474],{"class":124,"line":241},[122,4475,4476],{"class":218},"[Timer]\n",[122,4478,4479],{"class":124,"line":395},[122,4480,4481],{"class":218},"OnCalendar=daily\n",[122,4483,4484],{"class":124,"line":401},[122,4485,4486],{"class":218},"Persistent=true\n",[122,4488,4489],{"class":124,"line":1805},[122,4490,4491],{"class":218},"# RandomDelaySec=1h  # Раскомментируйте для распределения нагрузки\n",[122,4493,4494],{"class":124,"line":1907},[122,4495,4496],{"class":218},"# Убедитесь, что время не пересекается с другими задачами\n",[122,4498,4499],{"class":124,"line":1913},[122,4500,226],{"emptyLinePlaceholder":225},[122,4502,4503],{"class":124,"line":1919},[122,4504,4505],{"class":218},"[Install]\n",[122,4507,4508],{"class":124,"line":1925},[122,4509,4510],{"class":218},"WantedBy=timers.target\n",[122,4512,4513],{"class":124,"line":3326},[122,4514,4428],{"class":218},[44,4516,4517,4518],{},"Включите и запустите:",[113,4519,4521],{"className":115,"code":4520,"language":117,"meta":118,"style":118},"sudo systemctl daemon-reload\nsudo systemctl enable --now disk-cleanup.timer\n",[55,4522,4523,4532],{"__ignoreMap":118},[122,4524,4525,4527,4529],{"class":124,"line":125},[122,4526,52],{"class":128},[122,4528,1930],{"class":218},[122,4530,4531],{"class":218}," daemon-reload\n",[122,4533,4534,4536,4538,4541,4544],{"class":124,"line":212},[122,4535,52],{"class":128},[122,4537,1930],{"class":218},[122,4539,4540],{"class":218}," enable",[122,4542,4543],{"class":131}," --now",[122,4545,4546],{"class":218}," disk-cleanup.timer\n",[44,4548,4549,4550],{},"Проверьте статус:",[113,4551,4553],{"className":115,"code":4552,"language":117,"meta":118,"style":118},"sudo systemctl status disk-cleanup.timer\nsudo systemctl list-timers | grep disk-cleanup\n",[55,4554,4555,4565],{"__ignoreMap":118},[122,4556,4557,4559,4561,4563],{"class":124,"line":125},[122,4558,52],{"class":128},[122,4560,1930],{"class":218},[122,4562,2141],{"class":218},[122,4564,4546],{"class":218},[122,4566,4567,4569,4571,4574,4576,4578],{"class":124,"line":212},[122,4568,52],{"class":128},[122,4570,1930],{"class":218},[122,4572,4573],{"class":218}," list-timers",[122,4575,262],{"class":255},[122,4577,665],{"class":128},[122,4579,4580],{"class":218}," disk-cleanup\n",[21,4582,4583],{},[25,4584,4585],{},"Преимущества systemd-timer:",[152,4587,4588,4597,4603],{},[44,4589,4590,4591,4593,4594,73],{},"Логи автоматически попадают в ",[55,4592,1860],{},": ",[55,4595,4596],{},"sudo journalctl -u disk-cleanup.service",[44,4598,4599,4600,805],{},"Таймер не запустится, если система была выключена в назначенное время (",[55,4601,4602],{},"Persistent=true",[44,4604,4605,4606,4609],{},"Можно настроить ",[55,4607,4608],{},"RandomDelaySec"," для распределения нагрузки.",[16,4611,4613],{"id":4612},"шаг-3-настройка-исключений-и-тонкая-настройка","Шаг 3: Настройка исключений и тонкая настройка",[1460,4615,4617],{"id":4616},"добавление-исключений-whitelist","Добавление исключений (whitelist)",[21,4619,4620],{},"Если в очищаемых каталогах есть важные файлы, создайте список исключений:",[113,4622,4624],{"className":115,"code":4623,"language":117,"meta":118,"style":118},"# В начале скрипта (после set) добавьте:\nEXCLUDE_PATTERNS=(\n    \"/tmp/important-file\"\n    \"/var/log/secure\"  # Не удаляем логи аутентификации!\n    \"/var/log/auth.log\"\n)\n\n# Затем в функции clean_directory после find добавьте:\n# Пример для /tmp:\nfind \"$dir\" -type f -mtime +\"$days\" ! -path \"${EXCLUDE_PATTERNS[@]/#/}\" -print -delete\n",[55,4625,4626,4631,4640,4645,4653,4658,4662,4666,4671,4676],{"__ignoreMap":118},[122,4627,4628],{"class":124,"line":125},[122,4629,4630],{"class":208},"# В начале скрипта (после set) добавьте:\n",[122,4632,4633,4636,4638],{"class":124,"line":212},[122,4634,4635],{"class":357},"EXCLUDE_PATTERNS",[122,4637,3277],{"class":255},[122,4639,3313],{"class":357},[122,4641,4642],{"class":124,"line":222},[122,4643,4644],{"class":218},"    \"/tmp/important-file\"\n",[122,4646,4647,4650],{"class":124,"line":229},[122,4648,4649],{"class":218},"    \"/var/log/secure\"",[122,4651,4652],{"class":208},"  # Не удаляем логи аутентификации!\n",[122,4654,4655],{"class":124,"line":235},[122,4656,4657],{"class":218},"    \"/var/log/auth.log\"\n",[122,4659,4660],{"class":124,"line":241},[122,4661,3289],{"class":357},[122,4663,4664],{"class":124,"line":395},[122,4665,226],{"emptyLinePlaceholder":225},[122,4667,4668],{"class":124,"line":401},[122,4669,4670],{"class":208},"# Затем в функции clean_directory после find добавьте:\n",[122,4672,4673],{"class":124,"line":1805},[122,4674,4675],{"class":208},"# Пример для /tmp:\n",[122,4677,4678,4680,4682,4684,4686,4688,4690,4692,4694,4696,4698,4701,4704,4706,4708,4710,4712,4715,4718,4721,4723],{"class":124,"line":1907},[122,4679,871],{"class":128},[122,4681,3449],{"class":218},[122,4683,3452],{"class":357},[122,4685,3402],{"class":218},[122,4687,489],{"class":131},[122,4689,492],{"class":218},[122,4691,1764],{"class":131},[122,4693,3546],{"class":218},[122,4695,3511],{"class":357},[122,4697,3402],{"class":218},[122,4699,4700],{"class":218}," !",[122,4702,4703],{"class":131}," -path",[122,4705,3898],{"class":218},[122,4707,4635],{"class":357},[122,4709,3903],{"class":218},[122,4711,3906],{"class":255},[122,4713,4714],{"class":218},"]",[122,4716,4717],{"class":255},"/#/",[122,4719,4720],{"class":218},"}\"",[122,4722,3553],{"class":131},[122,4724,1770],{"class":131},[2849,4726,4727],{},[21,4728,4729,4730,4732,4733,4735],{},"⚠️ ",[25,4731,778],{}," Никогда не добавляйте в исключения каталоги вроде ",[55,4734,320],{}," целиком — это остановит ротацию логов. Исключайте только конкретные файлы.",[1460,4737,4739],{"id":4738},"настройка-под-конкретные-дистрибутивы","Настройка под конкретные дистрибутивы",[21,4741,4742,4745],{},[25,4743,4744],{},"Для Ubuntu/Debian"," (дополнительно очищаем кэш Snap):",[113,4747,4749],{"className":115,"code":4748,"language":117,"meta":118,"style":118},"# Добавьте в скрипт после clean_package_cache:\nif [[ -d \"/var/lib/snapd/cache\" ]]; then\n    find \"/var/lib/snapd/cache\" -type f -mtime +30 -delete\nfi\n",[55,4750,4751,4756,4772,4788],{"__ignoreMap":118},[122,4752,4753],{"class":124,"line":125},[122,4754,4755],{"class":208},"# Добавьте в скрипт после clean_package_cache:\n",[122,4757,4758,4761,4763,4765,4768,4770],{"class":124,"line":212},[122,4759,4760],{"class":255},"if",[122,4762,3440],{"class":357},[122,4764,4007],{"class":255},[122,4766,4767],{"class":218}," \"/var/lib/snapd/cache\"",[122,4769,3457],{"class":357},[122,4771,3460],{"class":255},[122,4773,4774,4776,4778,4780,4782,4784,4786],{"class":124,"line":222},[122,4775,3531],{"class":128},[122,4777,4767],{"class":218},[122,4779,489],{"class":131},[122,4781,492],{"class":218},[122,4783,1764],{"class":131},[122,4785,1767],{"class":218},[122,4787,1770],{"class":131},[122,4789,4790],{"class":124,"line":229},[122,4791,4792],{"class":255},"fi\n",[21,4794,4795,4801],{},[25,4796,4797,4798,4800],{},"Для серверов с маленьким ",[55,4799,1421],{}," в RAM"," (tmpfs):",[113,4803,4805],{"className":115,"code":4804,"language":117,"meta":118,"style":118},"# Обычно /tmp очищается при перезагрузке. Но если нужно:\nclean_directory \"/tmp\" 1  # Только файлы старше 1 дня\n",[55,4806,4807,4812],{"__ignoreMap":118},[122,4808,4809],{"class":124,"line":125},[122,4810,4811],{"class":208},"# Обычно /tmp очищается при перезагрузке. Но если нужно:\n",[122,4813,4814,4816,4819,4821],{"class":124,"line":212},[122,4815,3385],{"class":128},[122,4817,4818],{"class":218}," \"/tmp\"",[122,4820,3594],{"class":131},[122,4822,4823],{"class":208},"  # Только файлы старше 1 дня\n",[16,4825,4827],{"id":4826},"шаг-4-проверка-результата-и-мониторинг","Шаг 4: Проверка результата и мониторинг",[1460,4829,4831],{"id":4830},"тестовый-запуск","Тестовый запуск",[113,4833,4835],{"className":115,"code":4834,"language":117,"meta":118,"style":118},"# Запустите скрипт вручную:\nsudo /usr/local/bin/disk-cleanup.sh\n\n# Или для systemd:\nsudo systemctl start disk-cleanup.service\nsudo systemctl status disk-cleanup.service\n",[55,4836,4837,4842,4848,4852,4857,4869],{"__ignoreMap":118},[122,4838,4839],{"class":124,"line":125},[122,4840,4841],{"class":208},"# Запустите скрипт вручную:\n",[122,4843,4844,4846],{"class":124,"line":212},[122,4845,52],{"class":128},[122,4847,4210],{"class":218},[122,4849,4850],{"class":124,"line":222},[122,4851,226],{"emptyLinePlaceholder":225},[122,4853,4854],{"class":124,"line":229},[122,4855,4856],{"class":208},"# Или для systemd:\n",[122,4858,4859,4861,4863,4866],{"class":124,"line":235},[122,4860,52],{"class":128},[122,4862,1930],{"class":218},[122,4864,4865],{"class":218}," start",[122,4867,4868],{"class":218}," disk-cleanup.service\n",[122,4870,4871,4873,4875,4877],{"class":124,"line":241},[122,4872,52],{"class":128},[122,4874,1930],{"class":218},[122,4876,2141],{"class":218},[122,4878,4868],{"class":218},[1460,4880,4882],{"id":4881},"проверьте-что-удалено","Проверьте, что удалено",[113,4884,4886],{"className":115,"code":4885,"language":117,"meta":118,"style":118},"# Посмотрите, сколько освободилось:\ndf -h /\n\n# Или по каталогам:\nsudo du -sh /tmp /var/log 2>/dev/null\n",[55,4887,4888,4893,4901,4905,4910],{"__ignoreMap":118},[122,4889,4890],{"class":124,"line":125},[122,4891,4892],{"class":208},"# Посмотрите, сколько освободилось:\n",[122,4894,4895,4897,4899],{"class":124,"line":212},[122,4896,107],{"class":128},[122,4898,506],{"class":131},[122,4900,2111],{"class":218},[122,4902,4903],{"class":124,"line":222},[122,4904,226],{"emptyLinePlaceholder":225},[122,4906,4907],{"class":124,"line":229},[122,4908,4909],{"class":208},"# Или по каталогам:\n",[122,4911,4912,4914,4916,4918,4920,4922,4924],{"class":124,"line":235},[122,4913,52],{"class":128},[122,4915,246],{"class":218},[122,4917,249],{"class":131},[122,4919,1971],{"class":218},[122,4921,486],{"class":218},[122,4923,256],{"class":255},[122,4925,624],{"class":218},[1460,4927,4929],{"id":4928},"мониторинг-через-логи","Мониторинг через логи",[152,4931,4932,4940],{},[44,4933,4934,2366,4937],{},[25,4935,4936],{},"Cron:",[55,4938,4939],{},"sudo tail -f /var/log/disk-cleanup.log",[44,4941,4942,2366,4945],{},[25,4943,4944],{},"Systemd:",[55,4946,4947],{},"sudo journalctl -u disk-cleanup.service -f",[1460,4949,4951],{"id":4950},"настройте-оповещения-о-свободном-месте-опционально","Настройте оповещения о свободном месте (опционально)",[21,4953,4954],{},"Добавьте в скрипт проверку свободного места и оповещение:",[113,4956,4958],{"className":115,"code":4957,"language":117,"meta":118,"style":118},"MIN_FREE_GB=5  # Минимум 5 ГБ свободно\nFREE_SPACE=$(df --output=avail / | tail -n1)  # в 1K-блоках\nFREE_SPACE_GB=$((FREE_SPACE / 1024 / 1024))\n\nif [[ $FREE_SPACE_GB -lt $MIN_FREE_GB ]]; then\n    echo \"⚠️ Мало свободного места: ${FREE_SPACE_GB}GB\" | \\\n        mail -s \"Критично: мало места на $(hostname)\" admin@example.com\nfi\n",[55,4959,4960,4973,5004,5028,5032,5047,5064,5083],{"__ignoreMap":118},[122,4961,4962,4965,4967,4970],{"class":124,"line":125},[122,4963,4964],{"class":357},"MIN_FREE_GB",[122,4966,3277],{"class":255},[122,4968,4969],{"class":218},"5",[122,4971,4972],{"class":208},"  # Минимум 5 ГБ свободно\n",[122,4974,4975,4978,4980,4983,4985,4988,4990,4992,4995,4998,5001],{"class":124,"line":212},[122,4976,4977],{"class":357},"FREE_SPACE",[122,4979,3277],{"class":255},[122,4981,4982],{"class":357},"$(",[122,4984,107],{"class":128},[122,4986,4987],{"class":131}," --output=avail",[122,4989,1386],{"class":218},[122,4991,262],{"class":255},[122,4993,4994],{"class":128}," tail",[122,4996,4997],{"class":131}," -n1",[122,4999,5000],{"class":357},")  ",[122,5002,5003],{"class":208},"# в 1K-блоках\n",[122,5005,5006,5009,5011,5014,5016,5018,5021,5023,5025],{"class":124,"line":222},[122,5007,5008],{"class":357},"FREE_SPACE_GB",[122,5010,3277],{"class":255},[122,5012,5013],{"class":357},"$((",[122,5015,4977],{"class":128},[122,5017,1386],{"class":218},[122,5019,5020],{"class":131}," 1024",[122,5022,1386],{"class":218},[122,5024,5020],{"class":131},[122,5026,5027],{"class":357},"))\n",[122,5029,5030],{"class":124,"line":229},[122,5031,226],{"emptyLinePlaceholder":225},[122,5033,5034,5036,5039,5042,5045],{"class":124,"line":235},[122,5035,4760],{"class":255},[122,5037,5038],{"class":357}," [[ $FREE_SPACE_GB ",[122,5040,5041],{"class":255},"-lt",[122,5043,5044],{"class":357}," $MIN_FREE_GB ]]; ",[122,5046,3460],{"class":255},[122,5048,5049,5051,5054,5056,5059,5061],{"class":124,"line":241},[122,5050,3500],{"class":131},[122,5052,5053],{"class":218}," \"⚠️ Мало свободного места: ${",[122,5055,5008],{"class":357},[122,5057,5058],{"class":218},"}GB\"",[122,5060,262],{"class":255},[122,5062,5063],{"class":131}," \\\n",[122,5065,5066,5069,5071,5074,5077,5080],{"class":124,"line":395},[122,5067,5068],{"class":128},"        mail",[122,5070,1833],{"class":131},[122,5072,5073],{"class":218}," \"Критично: мало места на $(",[122,5075,5076],{"class":128},"hostname",[122,5078,5079],{"class":218},")\"",[122,5081,5082],{"class":218}," admin@example.com\n",[122,5084,5085],{"class":124,"line":401},[122,5086,4792],{"class":255},[16,5088,5090],{"id":5089},"шаг-5-ротация-логов-скрипта-если-используете-cron","Шаг 5: Ротация логов скрипта (если используете cron)",[21,5092,5093,5094,707],{},"Создайте конфиг для ",[55,5095,953],{},[113,5097,5099],{"className":115,"code":5098,"language":117,"meta":118,"style":118},"sudo tee /etc/logrotate.d/disk-cleanup > /dev/null \u003C\u003C'EOF'\n/var/log/disk-cleanup.log {\n    weekly\n    rotate 4\n    compress\n    missingok\n    notifempty\n    create 640 root adm\n}\nEOF\n",[55,5100,5101,5118,5123,5128,5133,5138,5143,5148,5153,5157],{"__ignoreMap":118},[122,5102,5103,5105,5107,5110,5112,5114,5116],{"class":124,"line":125},[122,5104,52],{"class":128},[122,5106,4354],{"class":218},[122,5108,5109],{"class":218}," /etc/logrotate.d/disk-cleanup",[122,5111,4360],{"class":255},[122,5113,4363],{"class":218},[122,5115,4366],{"class":255},[122,5117,4369],{"class":218},[122,5119,5120],{"class":124,"line":212},[122,5121,5122],{"class":218},"/var/log/disk-cleanup.log {\n",[122,5124,5125],{"class":124,"line":222},[122,5126,5127],{"class":218},"    weekly\n",[122,5129,5130],{"class":124,"line":229},[122,5131,5132],{"class":218},"    rotate 4\n",[122,5134,5135],{"class":124,"line":235},[122,5136,5137],{"class":218},"    compress\n",[122,5139,5140],{"class":124,"line":241},[122,5141,5142],{"class":218},"    missingok\n",[122,5144,5145],{"class":124,"line":395},[122,5146,5147],{"class":218},"    notifempty\n",[122,5149,5150],{"class":124,"line":401},[122,5151,5152],{"class":218},"    create 640 root adm\n",[122,5154,5155],{"class":124,"line":1805},[122,5156,3621],{"class":218},[122,5158,5159],{"class":124,"line":1907},[122,5160,4428],{"class":218},[21,5162,5163,5164,5166],{},"Для systemd логи управляются через ",[55,5165,1860],{}," и не требуют отдельной ротации.",[16,5168,787],{"id":786},[21,5170,5171],{},"После настройки:",[41,5173,5174,5227,5285],{},[44,5175,5176,5177],{},"Убедитесь, что скрипт запускается автоматически:",[113,5178,5180],{"className":115,"code":5179,"language":117,"meta":118,"style":118},"# Для cron:\nsudo grep disk-cleanup /var/log/syslog | tail\n\n# Для systemd-timer:\nsudo systemctl list-timers | grep disk-cleanup\n",[55,5181,5182,5187,5204,5208,5213],{"__ignoreMap":118},[122,5183,5184],{"class":124,"line":125},[122,5185,5186],{"class":208},"# Для cron:\n",[122,5188,5189,5191,5193,5196,5199,5201],{"class":124,"line":212},[122,5190,52],{"class":128},[122,5192,665],{"class":218},[122,5194,5195],{"class":218}," disk-cleanup",[122,5197,5198],{"class":218}," /var/log/syslog",[122,5200,262],{"class":255},[122,5202,5203],{"class":128}," tail\n",[122,5205,5206],{"class":124,"line":222},[122,5207,226],{"emptyLinePlaceholder":225},[122,5209,5210],{"class":124,"line":229},[122,5211,5212],{"class":208},"# Для systemd-timer:\n",[122,5214,5215,5217,5219,5221,5223,5225],{"class":124,"line":235},[122,5216,52],{"class":128},[122,5218,1930],{"class":218},[122,5220,4573],{"class":218},[122,5222,262],{"class":255},[122,5224,665],{"class":128},[122,5226,4580],{"class":218},[44,5228,5229,5230],{},"Проверьте, что место освобождается:",[113,5231,5233],{"className":115,"code":5232,"language":117,"meta":118,"style":118},"# Зафиксируйте текущее использование:\ndf -h / > /tmp/disk-before.txt\n\n# Через день:\ndf -h / > /tmp/disk-after.txt\ndiff /tmp/disk-before.txt /tmp/disk-after.txt\n",[55,5234,5235,5240,5253,5257,5262,5275],{"__ignoreMap":118},[122,5236,5237],{"class":124,"line":125},[122,5238,5239],{"class":208},"# Зафиксируйте текущее использование:\n",[122,5241,5242,5244,5246,5248,5250],{"class":124,"line":212},[122,5243,107],{"class":128},[122,5245,506],{"class":131},[122,5247,1386],{"class":218},[122,5249,4360],{"class":255},[122,5251,5252],{"class":218}," /tmp/disk-before.txt\n",[122,5254,5255],{"class":124,"line":222},[122,5256,226],{"emptyLinePlaceholder":225},[122,5258,5259],{"class":124,"line":229},[122,5260,5261],{"class":208},"# Через день:\n",[122,5263,5264,5266,5268,5270,5272],{"class":124,"line":235},[122,5265,107],{"class":128},[122,5267,506],{"class":131},[122,5269,1386],{"class":218},[122,5271,4360],{"class":255},[122,5273,5274],{"class":218}," /tmp/disk-after.txt\n",[122,5276,5277,5280,5283],{"class":124,"line":241},[122,5278,5279],{"class":128},"diff",[122,5281,5282],{"class":218}," /tmp/disk-before.txt",[122,5284,5274],{"class":218},[44,5286,5287,5288,1135,5290,805],{},"Убедитесь, что важные файлы не удалены (особенно в ",[55,5289,320],{},[55,5291,1421],{},[16,5293,826],{"id":825},[1460,5295,5297],{"id":5296},"permission-denied-при-удалении-файлов","❌ \"Permission denied\" при удалении файлов",[21,5299,5300,5302,5303,58,5305,5307,5308,5310,5311,5313,5314,805],{},[25,5301,844],{}," Скрипт запущен не от root, а некоторые каталоги (",[55,5304,320],{},[55,5306,1421],{},") требуют повышенных прав.\n",[25,5309,692],{}," Запускайте скрипт через ",[55,5312,52],{}," (cron от root, systemd service без ",[55,5315,5316],{},"User=",[1460,5318,5320],{"id":5319},"удаляются-нужные-файлы-например-активные-сессии-в-tmp","❌ Удаляются нужные файлы (например, активные сессии в /tmp)",[21,5322,5323,5325,5326,5328,5329],{},[25,5324,844],{}," Слишком маленький ",[55,5327,3346],{}," или нет исключений.\n",[25,5330,692],{},[152,5332,5333,5341,5350],{},[44,5334,5335,5336,5338,5339,73],{},"Увеличьте ",[55,5337,3346],{}," до 7-10 для ",[55,5340,1421],{},[44,5342,5343,5344,5347,5348,73],{},"Добавьте исключения через ",[55,5345,5346],{},"! -path"," в ",[55,5349,871],{},[44,5351,5352,5353,848,5355,5357],{},"Протестируйте с ",[55,5354,871],{},[55,5356,2091],{},", чтобы увидеть список.",[1460,5359,5361],{"id":5360},"systemd-timer-не-запускается","❌ Systemd-timer не запускается",[21,5363,5364,5366,5367],{},[25,5365,844],{}," Таймер не включён или конфликт времени.\n",[25,5368,692],{},[113,5370,5372],{"className":115,"code":5371,"language":117,"meta":118,"style":118},"sudo systemctl enable disk-cleanup.timer\nsudo systemctl list-timers | grep disk-cleanup  # Проверьте время следующего запуска\n",[55,5373,5374,5384],{"__ignoreMap":118},[122,5375,5376,5378,5380,5382],{"class":124,"line":125},[122,5377,52],{"class":128},[122,5379,1930],{"class":218},[122,5381,4540],{"class":218},[122,5383,4546],{"class":218},[122,5385,5386,5388,5390,5392,5394,5396,5398],{"class":124,"line":212},[122,5387,52],{"class":128},[122,5389,1930],{"class":218},[122,5391,4573],{"class":218},[122,5393,262],{"class":255},[122,5395,665],{"class":128},[122,5397,5195],{"class":218},[122,5399,5400],{"class":208},"  # Проверьте время следующего запуска\n",[1460,5402,5404],{"id":5403},"слишком-агрессивная-очистка-кэша-пакетов","❌ Слишком агрессивная очистка кэша пакетов",[21,5406,5407,2366,5409,5411,5412,2366,5415,5417,5418,856,5420,2088,5423,5425],{},[25,5408,844],{},[55,5410,2201],{}," удаляет ",[25,5413,5414],{},"все",[55,5416,4247],{}," файлы, включая те, что могут понадобиться для отката.\n",[25,5419,692],{},[55,5421,5422],{},"apt-get autoclean",[55,5424,782],{}," — удаляет только устаревшие (без пакетов, которые ещё можно установить).",[21,5427,5428],{},"Измените строку в скрипте:",[113,5430,5432],{"className":115,"code":5431,"language":117,"meta":118,"style":118},"apt-get autoclean -y 2>/dev/null || true\n",[55,5433,5434],{"__ignoreMap":118},[122,5435,5436,5439,5442,5444,5446,5448,5450],{"class":124,"line":125},[122,5437,5438],{"class":128},"apt-get",[122,5440,5441],{"class":218}," autoclean",[122,5443,3702],{"class":131},[122,5445,256],{"class":255},[122,5447,259],{"class":218},[122,5449,3563],{"class":255},[122,5451,3566],{"class":131},[1460,5453,5455],{"id":5454},"ошибки-при-очистке-кэша-браузеров","❌ Ошибки при очистке кэша браузеров",[21,5457,5458,5460,5461,5463,5464,73],{},[25,5459,844],{}," Браузеры могут блокировать файлы или использовать сложные структуры.\n",[25,5462,692],{}," Не очищайте кэш браузеров автоматически. Доверьте это встроенным функциям (например, \"Очистить историю\" в Firefox). Если очень нужно — удаляйте только файлы старше 30 дней и только в ",[55,5465,5466],{},"~/.cache/mozilla/firefox/*.default/cache2/",[1460,5468,5470],{"id":5469},"нет-места-после-очистки","❌ Нет места после очистки",[21,5472,5473,5475,5476,856,5478,5480],{},[25,5474,844],{}," Проблема не во временных файлах, а в больших данных (логи приложений, базы данных, медиафайлы).\n",[25,5477,692],{},[55,5479,68],{}," для поиска \"тяжелых\" каталогов. Возможно, потребуется:",[152,5482,5483,5486,5489],{},[44,5484,5485],{},"Архивация старых данных.",[44,5487,5488],{},"Настройка ротации логов для конкретных приложений (например, MySQL, Docker).",[44,5490,5491],{},"Увеличение диска.",[1460,5493,5495],{"id":5494},"cron-не-отправляет-почту-с-ошибками","❌ Cron не отправляет почту с ошибками",[21,5497,5498,5500,5501],{},[25,5499,844],{}," По умолчанию cron отправляет почту на local user, но MTA не настроен.\n",[25,5502,692],{},[152,5504,5505,5515,5518],{},[44,5506,5507,5508,69,5511,5514],{},"Настройте ",[55,5509,5510],{},"ssmtp",[55,5512,5513],{},"msmtp"," для отправки.",[44,5516,5517],{},"Или перенаправляйте ошибки в лог (как в примере) и мониторьте его.",[44,5519,5520,5521,5524,5525,73],{},"Или используйте ",[55,5522,5523],{},"systemd"," — логи в ",[55,5526,1860],{},[2234,5528],{},[96,5530],{},[16,5532,5534],{"id":5533},"дополнительные-возможности","Дополнительные возможности",[1460,5536,5538],{"id":5537},"очистка-docker-объектов-если-docker-установлен","Очистка Docker-объектов (если Docker установлен)",[21,5540,5541,5542,5544],{},"Добавьте в скрипт (перед ",[55,5543,3638],{},"):",[113,5546,5548],{"className":115,"code":5547,"language":117,"meta":118,"style":118},"if command -v docker &>/dev/null; then\n    echo \"🐳 Очистка Docker...\"\n    # Удаляем остановленные контейнеры, висячие образы, сети, тома\n    docker system prune -af --volumes 2>/dev/null || true\nfi\n",[55,5549,5550,5569,5576,5581,5606],{"__ignoreMap":118},[122,5551,5552,5554,5556,5558,5561,5563,5565,5567],{"class":124,"line":125},[122,5553,4760],{"class":255},[122,5555,3667],{"class":131},[122,5557,3670],{"class":131},[122,5559,5560],{"class":218}," docker",[122,5562,3675],{"class":357},[122,5564,3678],{"class":255},[122,5566,3681],{"class":357},[122,5568,3460],{"class":255},[122,5570,5571,5573],{"class":124,"line":212},[122,5572,3500],{"class":131},[122,5574,5575],{"class":218}," \"🐳 Очистка Docker...\"\n",[122,5577,5578],{"class":124,"line":222},[122,5579,5580],{"class":208},"    # Удаляем остановленные контейнеры, висячие образы, сети, тома\n",[122,5582,5583,5586,5589,5592,5595,5598,5600,5602,5604],{"class":124,"line":229},[122,5584,5585],{"class":128},"    docker",[122,5587,5588],{"class":218}," system",[122,5590,5591],{"class":218}," prune",[122,5593,5594],{"class":131}," -af",[122,5596,5597],{"class":131}," --volumes",[122,5599,256],{"class":255},[122,5601,259],{"class":218},[122,5603,3563],{"class":255},[122,5605,3566],{"class":131},[122,5607,5608],{"class":124,"line":235},[122,5609,4792],{"class":255},[2849,5611,5612],{},[21,5613,5614,5615,5618,5619,5622,5623,5626,5627,805],{},"💡 ",[25,5616,5617],{},"Совет:"," Для production-серверов используйте ",[55,5620,5621],{},"docker system prune"," с осторожностью. Лучше настроить ",[55,5624,5625],{},"--filter \"until=24h\""," или удалять только dangling образы (",[55,5628,5629],{},"docker image prune -f",[1460,5631,5633],{"id":5632},"очистка-старых-ядер-ubuntudebian","Очистка старых ядер (Ubuntu/Debian)",[21,5635,5636],{},"Количество установленных ядер может занимать гигабайты. Добавьте:",[113,5638,5640],{"className":115,"code":5639,"language":117,"meta":118,"style":118},"# Удаляет старые ядра, оставляя последние 2\nif command -v apt-get &>/dev/null; then\n    echo \"🔄 Очистка старых ядер...\"\n    # Вариант 1: автоматически (осторожно!)\n    # apt-get autoremove --purge -y\n    \n    # Вариант 2: ручной список (рекомендуется)\n    # dpkg -l 'linux-image-*' | grep '^ii' | awk '{print $2}' | \\\n    #   grep -v \"$(uname -r)\" | grep -v \"$(uname -r | sed 's/-generic//')\" | \\\n    #   xargs sudo apt-get purge -y 2>/dev/null || true\nfi\n",[55,5641,5642,5647,5665,5672,5677,5682,5686,5691,5696,5701,5706],{"__ignoreMap":118},[122,5643,5644],{"class":124,"line":125},[122,5645,5646],{"class":208},"# Удаляет старые ядра, оставляя последние 2\n",[122,5648,5649,5651,5653,5655,5657,5659,5661,5663],{"class":124,"line":212},[122,5650,4760],{"class":255},[122,5652,3667],{"class":131},[122,5654,3670],{"class":131},[122,5656,1480],{"class":218},[122,5658,3675],{"class":357},[122,5660,3678],{"class":255},[122,5662,3681],{"class":357},[122,5664,3460],{"class":255},[122,5666,5667,5669],{"class":124,"line":222},[122,5668,3500],{"class":131},[122,5670,5671],{"class":218}," \"🔄 Очистка старых ядер...\"\n",[122,5673,5674],{"class":124,"line":229},[122,5675,5676],{"class":208},"    # Вариант 1: автоматически (осторожно!)\n",[122,5678,5679],{"class":124,"line":235},[122,5680,5681],{"class":208},"    # apt-get autoremove --purge -y\n",[122,5683,5684],{"class":124,"line":241},[122,5685,3431],{"class":357},[122,5687,5688],{"class":124,"line":395},[122,5689,5690],{"class":208},"    # Вариант 2: ручной список (рекомендуется)\n",[122,5692,5693],{"class":124,"line":401},[122,5694,5695],{"class":208},"    # dpkg -l 'linux-image-*' | grep '^ii' | awk '{print $2}' | \\\n",[122,5697,5698],{"class":124,"line":1805},[122,5699,5700],{"class":208},"    #   grep -v \"$(uname -r)\" | grep -v \"$(uname -r | sed 's/-generic//')\" | \\\n",[122,5702,5703],{"class":124,"line":1907},[122,5704,5705],{"class":208},"    #   xargs sudo apt-get purge -y 2>/dev/null || true\n",[122,5707,5708],{"class":124,"line":1913},[122,5709,4792],{"class":255},[2849,5711,5712],{},[21,5713,4729,5714,5716,5717,5719],{},[25,5715,778],{}," Не удаляйте текущее ядро (",[55,5718,1696],{},"). Лучше оставляйте 2 последних.",[1460,5721,5723,5724,80,5727],{"id":5722},"интеграция-с-tmpreaper-или-tmpwatch","Интеграция с ",[55,5725,5726],{},"tmpreaper",[55,5728,5729],{},"tmpwatch",[21,5731,5732,5733,5735,5736,5738],{},"Некоторые дистрибутивы (RHEL, CentOS) используют ",[55,5734,5729],{}," для очистки ",[55,5737,1421],{},". Вместо своего скрипта можно настроить его:",[113,5740,5742],{"className":115,"code":5741,"language":117,"meta":118,"style":118},"# Для CentOS/RHEL:\nsudo yum install tmpwatch\nsudo tee /etc/cron.daily/tmpwatch \u003C\u003C'EOF'\n#!/bin/sh\n/usr/sbin/tmpwatch 24 /tmp\n/usr/sbin/tmpwatch 48 /var/tmp\nEOF\nsudo chmod +x /etc/cron.daily/tmpwatch\n",[55,5743,5744,5749,5760,5773,5778,5783,5788,5792],{"__ignoreMap":118},[122,5745,5746],{"class":124,"line":125},[122,5747,5748],{"class":208},"# Для CentOS/RHEL:\n",[122,5750,5751,5753,5755,5757],{"class":124,"line":212},[122,5752,52],{"class":128},[122,5754,752],{"class":218},[122,5756,365],{"class":218},[122,5758,5759],{"class":218}," tmpwatch\n",[122,5761,5762,5764,5766,5769,5771],{"class":124,"line":222},[122,5763,52],{"class":128},[122,5765,4354],{"class":218},[122,5767,5768],{"class":218}," /etc/cron.daily/tmpwatch",[122,5770,4366],{"class":255},[122,5772,4369],{"class":218},[122,5774,5775],{"class":124,"line":229},[122,5776,5777],{"class":218},"#!/bin/sh\n",[122,5779,5780],{"class":124,"line":235},[122,5781,5782],{"class":218},"/usr/sbin/tmpwatch 24 /tmp\n",[122,5784,5785],{"class":124,"line":241},[122,5786,5787],{"class":218},"/usr/sbin/tmpwatch 48 /var/tmp\n",[122,5789,5790],{"class":124,"line":395},[122,5791,4428],{"class":218},[122,5793,5794,5796,5798,5800],{"class":124,"line":401},[122,5795,52],{"class":128},[122,5797,4204],{"class":218},[122,5799,4207],{"class":218},[122,5801,5802],{"class":218}," /etc/cron.daily/tmpwatch\n",[21,5804,5805],{},"Но наш скрипт более универсален и включает кэш пакетов.",[16,5807,5809],{"id":5808},"заключение-не-добавляем-как-отдельную-секцию","Заключение (не добавляем как отдельную секцию)",[21,5811,5812],{},"Автоматизация очистки диска — обязательная практика для поддержания здоровья Linux-системы. Вы настроили:",[152,5814,5815,5818,5821],{},[44,5816,5817],{},"Гибкий скрипт с настройками под ваш дистрибутив.",[44,5819,5820],{},"Запуск через cron или systemd-timer.",[44,5822,5823],{},"Логирование и мониторинг.",[21,5825,5826],{},[25,5827,5828],{},"Следующие шаги:",[41,5830,5831,5842,5851],{},[44,5832,5833,5834,5837,5838,2088,5840,805],{},"Тестируйте скрипт в ",[55,5835,5836],{},"--dry-run"," режиме (добавьте ",[55,5839,3863],{},[55,5841,2091],{},[44,5843,5844,5845,80,5848,805],{},"Настройте алерты на свободное место (например, через ",[55,5846,5847],{},"monit",[55,5849,5850],{},"zabbix",[44,5852,5853],{},"Для серверов рассмотрите централизованный сбор логов (ELK, Graylog) — это сократит нагрузку на локальные диски.",[21,5855,5856,5857,5859],{},"Если место всё равно заканчивается, ищите \"тяжёлые\" каталоги через ",[55,5858,68],{}," — возможно, проблема в данных, а не во временных файлах.",[960,5861,5862],{},"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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":118,"searchDepth":212,"depth":212,"links":5864},[5865,5866,5867,5868,5871,5875,5881,5882,5883,5892,5898],{"id":18,"depth":212,"text":19},{"id":35,"depth":212,"text":36},{"id":3210,"depth":212,"text":3211},{"id":4264,"depth":212,"text":4265,"children":5869},[5870],{"id":4333,"depth":222,"text":4334},{"id":4612,"depth":212,"text":4613,"children":5872},[5873,5874],{"id":4616,"depth":222,"text":4617},{"id":4738,"depth":222,"text":4739},{"id":4826,"depth":212,"text":4827,"children":5876},[5877,5878,5879,5880],{"id":4830,"depth":222,"text":4831},{"id":4881,"depth":222,"text":4882},{"id":4928,"depth":222,"text":4929},{"id":4950,"depth":222,"text":4951},{"id":5089,"depth":212,"text":5090},{"id":786,"depth":212,"text":787},{"id":825,"depth":212,"text":826,"children":5884},[5885,5886,5887,5888,5889,5890,5891],{"id":5296,"depth":222,"text":5297},{"id":5319,"depth":222,"text":5320},{"id":5360,"depth":222,"text":5361},{"id":5403,"depth":222,"text":5404},{"id":5454,"depth":222,"text":5455},{"id":5469,"depth":222,"text":5470},{"id":5494,"depth":222,"text":5495},{"id":5533,"depth":212,"text":5534,"children":5893},[5894,5895,5896],{"id":5537,"depth":222,"text":5538},{"id":5632,"depth":222,"text":5633},{"id":5722,"depth":222,"text":5897},"Интеграция с tmpreaper или tmpwatch",{"id":5808,"depth":212,"text":5809},"2026-02-16 12:56:03","Полное руководство по автоматической очистке временных файлов, кэша и логов в Linux. Настройте регулярное обслуживание через cron или systemd-timer за 15 минут.",[5902,5905,5908,5911],{"question":5903,"answer":5904},"Безопасно ли автоматически удалять файлы в /tmp?","Да, если вы удаляете только файлы старше N дней (рекомендуется 7-10). Системные приложения обычно создают временные файлы, которые больше не нужны после перезагрузки или через несколько дней.",{"question":5906,"answer":5907},"Как проверить, что скрипт очистки работает корректно?","Сначала запустите скрипт вручную с флагом `--dry-run` (если поддерживается) или проверьте логи systemd/cron. После тестового запуска сравните использование диска командой `df -h`.",{"question":5909,"answer":5910},"Можно ли очищать кэш браузеров автоматически?","Да, но осторожно. Браузеры (Firefox, Chrome) хранят кэш в домашних директориях. Удаление вручную может нарушить работу. Лучше использовать встроенные функции очистки браузеров или удалять только файлы старше 30 дней.",{"question":5912,"answer":5913},"Что делать, если система удалила важные файлы?","Всегда тестируйте скрипты в `--dry-run` режиме и настраивайте исключения (whitelist). Восстановите файлы из резервной копии или используйте `extundelete` для ext4, если не перезаписали диск.",[5915,5918,5921,5924],{"name":5916,"text":5917},"Анализ занятого пространства","Определите, какие каталоги и файлы занимают больше всего места, с помощью `ncdu` или `du -sh /*`. Это поможет точечно настроить очистку.",{"name":5919,"text":5920},"Создание скрипта очистки","Напишите bash-скрипт, который удаляет временные файлы, старые логи и кэш, соблюдая политику хранения (например, файлы старше 7 дней).",{"name":5922,"text":5923},"Настройка автоматического запуска","Выберите механизм: cron для простоты или systemd-timer для лучшего контроля и логирования. Добавьте задание.",{"name":5925,"text":5926},"Тестирование и мониторинг","Запустите скрипт вручную, проверьте результаты, убедитесь в отсутствии ошибок. Настройте оповещения о нехватке места.",[5928,5929,5930,5931,5932,5933,5934,5935],"автоматическая очистка диска linux","очистка временных файлов linux cron","systemd-timer очистка диска","удалить кэш linux автоматически","очистка /tmp /var/log","bash скрипт очистка диска","cron job очистка linux","autoclean linux disk space",{},[5938,5939,5940],"/guides/linux/disk-usage-analysis","/guides/linux/log-rotation-config","/errors/linux/disk-space-full",{"title":3011,"description":5900},"guides/linux/automate-disk-cleanup","В этом гайде вы научитесь настраивать автоматическую очистку диска в Linux с помощью cron и systemd-timer. Мы рассмотрим безопасные методы удаления временных файлов, кэша браузеров и старых логов, чтобы поддерживать систему в тонусе без ручного вмешательства.",[5945,3036,5523,5946,117,5947,5948],"Linux","disk cleanup","автоматизация","администрирование","kX4r7z4vHWy8tcJs5EvSjMwusctRFBnVsH-iNADe4V0"]