Как очистить tmp linux
Как безопасно очистить папку tmp в Linux
Я использую оперативную память для моих tmpfs / tmp, 2 ГБ, если быть точным. Обычно этого достаточно, но иногда процессы создают файлы там и не могут очистить после себя. Это может произойти, если они потерпят крах. Мне нужно удалить эти потерянные tmp файлы, иначе в будущем / tmp не хватит места.
Кстати, разрешает ли Linux / Unix режим открытия файла с созданием, при котором созданный файл удаляется при завершении процесса создания, даже если это происходит из-за сбоя?
Вы можете попробовать что-то вроде этого:
find используется для поиска файлов, которые соответствуют определенным критериям.
К последнему пункту: Учтите, что могут быть файлы, которые записываются только один раз (например, при загрузке системы), но часто читаются (например, любой файл X-session-cookie). Поэтому я рекомендую добавить некоторые проверки имен, чтобы они влияли только на файлы, созданные неисправными программами.
edit2: К вашему последнему вопросу: файл не будет удален с диска, пока ни у одного процесса не будет открытого дескриптора (по крайней мере, для родных файловых систем linux). Проблема заключается в том, что запись в каталоге удаляется немедленно, а это означает, что с момента удаления файла новые процессы не смогут открыть файл (так как к нему не прикреплено имя файла).
edit3: Но что, если я хотел бы автоматизировать весь процесс?
Как я уже сказал, могут быть файлы, которые записываются один раз, а затем читаются время от времени (например, файлы cookie сеанса X, файлы PID и т. Д.). Они не будут исключены этим небольшим скриптом удаления (по этой причине вы можете сначала выполнить тестовый прогон, echo прежде чем удалять файлы).
Но имейте в виду, что нужно протестировать команду echo перед тем, как вы удалите все, что нужно вашей системе!
Какие файлы можно удалить при нехватке места на диске Linux
Бывают ситуации, когда место на диске закончилось полностью и нужно экстренно очистить диск и удалить файлы. Место на диске может закончится даже так, что
То есть бывают действительно критические ситуации — в этих условиях перестают нормально работать многие программы и службы. Поэтому задача становится следующей: срочно любой ценой освободить место на диске, чтобы можно было продолжить обслуживание системы и перейти ко второму этапу — поиску директорий и папок, которые привели к этой проблеме из-за того, что стали занимать слишком много места.
Предупрежу заранее: следующие команды хотя в основном и удаляют бесполезные файлы, после их выполнения могут потребоваться такие действия как:
Это означает, что НЕ копируйте бездумно команды — читайте пояснения к ним и оценивайте, насколько они безболезненны для вашей ситуации.
1. Удаление временных файлов
Файлы в папке /tmp/ будут удалены в любом случае при следующей перезагрузки системы. То есть с одной стороны их можно удалить достаточно безболезненно:
НО: может быть нарушена работа программ, которые запущены в настоящее время и которые сохранили какие-то данные в папку /tmp/.
2. Удаление файлов кэширования
В директории /var/cache/ много поддиректорий, которые можно удалить практически безболезненно (данные утеряны не будут, а программы создадут новые файлы кэширования). Эта директория вызывает особый интерес, поскольку на которых системах кэши разрастаются на гигабайты и десятки гигабайт. Иногда поиск проблемной директории в /var/cache/ может окончательно решить ситуацию с нехваткой места на диске.
Для удаления кэша шрифтов:
Для удаления кэша установочных пакетов (на Debian, Linux Mint, Ubuntu, Kali Linux и их производных):
Для удаления кэша установочных пакетов (на Arch Linux, BlackArch и их производных):
Удаление кэша справочных страниц:
Вы можете продолжить поиск больших кэшей применимо к программному обеспечению, установленному на вашей системе. Например, это могут быть кэши веб-сервера, прокси-сервера и т. д.
3. Удаление логов (журналов)
В этой папке (/var/log/) можно удалить практически все файлы, но старайтесь сохранить структуру папок, поскольку некоторые приложения после удаления здесь папки не в состоянии создать её второй раз…
На веб-серверах могут разрастись слишком сильно журналы веб-сервера.
Для удаления логов Apache на Debian, Linux Mint, Ubuntu, Kali Linux и их производных:
Для удаления логов Apache на Arch Linux, BlackArch и их производных:
Чтобы сервер начал создавать новые файлы журналов и записывать в них, нужно перезапустить службу веб-сервера.
В зависимости от интенсивности использования системы, накопленные журналы могут занимать гигабайты. В зависимости от системы файлы могут называться по-разному, более точный анализ рекомендуется выполнять с помощью утилиты ncdu:
4. Очистите корзину
Этот совет больше для настольных систем. Файлы, которые вы удалили в графическом интерфейсе рабочего стола, попадают в папку
/.local/share/Trash/files/, вы можете проанализировать их и при желании удалить (второй раз):
5. Удаление ненужных файлов исходного кода заголовков ядра
6. Удаление осиротевших пакетов
Осиротевшие пакеты — это те пакеты (программы), которые устанавливались в качестве зависимостей для других программ. Но по разным причинам они больше не нужны: или удалена программа, которая их использовала, или для той программы они перестали быть зависимостями после обновления программы.
На Debian, Linux Mint, Ubuntu, Kali Linux и их производных удалить ненужные пакеты можно следующим образом:
Для Debian и производных предыдущая команда абсолютно безопасна.
В Arch Linux и производных список осиротевших пакетов можно увидеть следующим образом:
Прежде чем переходить к их автоматическому удалению, настоятельно рекомендуется изучить этот список!
Для рекурсивного удаления сироток и их конфигурационных файлов в Arch Linux и производных:
7. Очистка журналов systemd
Со временем, в некоторых системах логи системы начинают занимать гигабайты на жёстком диске. Просмотреть журналы и освободить место вы можете с помощью команды journalctl, подробности смотрите в статье «Как использовать journalctl для просмотра системных логов Linux».
Чтобы увидеть, сколько место занимают журналы, выполните:
Чтобы удалить все записи, оставив только записей на 100 мегабайт, выполните:
Либо для удаления всех записей в системном журнале, старше одной недели:
8. Файлы в директории /lost+found
В папку /lost+found сохраняются файлы, которые были найдены после проверки файловой системы диска. Обычно такие проверки выполняются после внезапной перезагрузки системы или в случае признаков проблем с диском.
Найденные файлы обычно повреждены. Их цель — сохранить данные, которые в случае исправления ошибок на файловой системе были бы совсем утеряны.
Папка /lost+found может быть пустой (если не было проблем с диском). В случае если там есть файлы, то вы можете их просмотреть и, при желании, удалить.
9. Очистка PHP сессий
Иногда веб-приложений из-за бага могут создать бесчисленное количество сессий. Проверьте директорию /var/lib/php/sessions/ на предмет слишком большого количества файлов.
(БОНУС) 10. Проанализируйте файлы Docker
Не удаляйте бездумно файлы Docker. Я привожу пример этой директории только по той причине, что она привлекла моё внимание из-за просто фантасмагоричного размера — и это при том, что я Docker’ом фактически не пользуюсь — буквально несколько раз попробовал, чтобы увидеть, что это такое.
Самой большой папкой является /var/lib/docker/overlay2/. Для анализа занимаемого места на диске выполните:
Заключение
Итак, мы рассмотрели, какие файлы можно удалить из Linux практически без потери информации. Кроме рассмотренных директорий, которые можно очистить как на удалённой системе с веб-сервером, так и на домашнем компьютере, пользователям с графическим рабочим столом следует обратить внимание на такие директории как:
/Downloads (ваши скаченные файлы)
Их НЕ нужно удалять, но стоит проанализировать. Например, вы можете выяснить, что веб-браузер на вашем компьютере имеет кэш в несколько гигабайт и что вы можете их освободить (рекомендуется делать средствами веб-браузера, а не удалять файлы напрямую).
Если я пропустил какие-то директории с файлами, которые можно безболезненно удалить, то пишите их в комментариях!
Как безопасно очистить папку tmp в Linux
Я использую оперативную память для моих tmpfs /tmp, 2 ГБ, если быть точным. Обычно этого достаточно, но иногда процессы создают файлы там и не могут очистить после себя. Это может произойти, если они потерпят крах. Мне нужно удалить эти потерянные tmp файлы, иначе в будущем /tmp не хватит места.
Кстати, разрешает ли Linux/Unix режим открытия файла с созданием, при котором созданный файл удаляется при завершении процесса создания, даже если он произошел сбой?
7 ответов 7
Вы можете попробовать что-то вроде этого:
find используется для поиска файлов, которые соответствуют определенным критериям.
К последнему пункту: Учтите, что могут быть файлы, которые записываются только один раз (например, при загрузке системы), но часто читаются (например, любой файл X-session-cookie). Поэтому я рекомендую добавить некоторые проверки имен, чтобы они влияли только на файлы, созданные неисправными программами.
edit2: К вашему последнему вопросу: файл не будет удален с диска, пока ни у какого процесса не будет открытого дескриптора к нему (по крайней мере, для родных файловых систем linux). Проблема заключается в том, что запись в каталоге удаляется немедленно, а это означает, что с момента удаления файла новые процессы больше не смогут его открыть (поскольку к нему не прикреплено имя файла).
edit3: Но что, если я хотел бы автоматизировать весь процесс?
Как я уже сказал, могут быть файлы, которые записываются один раз, а затем читаются время от времени (например, файлы cookie сеанса X, файлы PID и т.д.). Они не будут исключены этим небольшим скриптом удаления (по этой причине вам может понадобиться выполнить тестовый прогон с echo прежде чем фактически удалять файлы).
Но имейте в виду, что нужно проверить команду с помощью echo прежде чем вы удалите все, что нужно вашей системе!
Как очищается каталог / tmp?
Да, окна приложений, которые не имеют соответствующих значков, WM_CLASS и других наборов метаданных, должны считаться ошибкой в приложении, которое предоставляет эти окна.
7 ответов
Каталог по умолчанию очищается при каждой загрузке, потому что TMPTIME по умолчанию 0.
Здесь вы можете изменить время в следующем файле:
TMPTIME указывает, как частоту tmp dir может быть очищена в днях
Хотя папка /tmp не является местом для хранения файлов в течение длительного времени, иногда вы хотите сохранить что-то немного дольше, чем в следующий раз при перезагрузке, что является по умолчанию для систем Ubuntu. Я знаю, что время или два я загрузил что-то в /tmp во время тестирования, перезагрузился после внесения изменений, а затем снова потерял исходные данные. Это можно изменить, если вы хотите, чтобы ваши файлы /tmp были немного длиннее.
при следующем перезагрузке
Значение по умолчанию, которое говорит, что ваша система очистки /tmp при перезагрузке хранится в файле /etc/default/rcS.
Текущее значение TMPTIME=0 указывает на удаление файлов при перезагрузке, несмотря на возраст файла. Изменение этого значения на другой (положительный) номер изменит количество дней, в течение которых файл может выжить в /tmp.
Этот параметр позволит файлам оставаться в /tmp, пока они не станут недели, а затем удалить их при следующей перезагрузке. Отрицательное число (TMPTIME=-1) сообщает системе никогда ничего не удалять в /tmp. Это, вероятно, не то, что вы хотите, но доступно.
очистка /tmp/
Заметил что в 10.04 при перезагрузке не отчищается папка /tmp.
Кто-то ещё наблюдал такое?!
$ grep tmp /etc/fstab
jacktmp /var/lib/jack/tmp ramfs defaults 0 0
tmp /tmp tmpfs size=500m,noexec,nosuid,nodev 0 0
20:32 al@wind
в инит скриптах обычно ставится WIPETMP или что-то похожее,
а вообще наиболее удачен предложеный вариант с tmpfs
эт понятно. Я не понял почему оно не так из каробки, или это у меня просто какой-то глюк был.
Я так понял, под /tmp выделяется фиксированный размер (в данном случае 500мб), а что будет если места в процессе работы понадобиться больше?
Не знаю, у меня такого ни разу не было. Можно выделить больше.
> а что будет если места в процессе работы понадобиться больше?
Это разве что если смотреть длиннющие фильмы через флеш-плеер, типа вконтактовского
>что будет если места в процессе работы понадобиться больше?
У меня много раз кончалось место на разделе с /tmp, ничего страшного не происходило
обычно не требуется,
больше у меня хотел только mc для вхождения в архив большого размера.
Как решили проблему? Думаю стоит ли пробовать, оперативы всего 1,5 Гига и добавлять не хотелось бы.
не открываю большие архивы в mc
>Как проявлялось?
Ролики флешевские начали глючить, больше ничего не заметил
Тогда еще один вопросик. Те 512 мб которые откусили для /tmp система под другие нужды использовать не сможет? Т.е. если я из своих 1,5Гб заберу 0,5Гб под /tmp, то под ОЗУ останется 1Гб?
Да, но Вам не нужен такой большой /tmp (конечно, если Вы не делаете то, что говорили предыдущие ораторы)
свап также учитывается в общем допустимом обьеме, т.е. размер tmpfs может быть больше обьема ОЗУ
а вообще наиболее удачен предложеный вариант с tmpfs
clear_tmp_enable=«YES» в /etc/rc.conf или в /etc/rc.conf.local наиболее удачен. 😉
Вот и наступили времена когда уже можно и не говорить какой дистр имеется ввиду 🙂
Спасибо всем за ответы, сейчас буду пробовать)))
>в 10.04 при перезагрузке не отчищается папка /tmp.
Как она может не очищаться, когда по дефолту она в tmpfs?
Хм. Ну некоторые под словом Линукс уже подразумевают Бубунту. Хотя лет 7-8 назад многие под словом Линукс подразумевали Red Hat, так что поживем-увидим.