- Как безопасно очистить папку tmp в Linux
- edit3: Но что, если я хотел бы автоматизировать весь процесс?
- Как безопасно очистить папку tmp в Linux
- 7 ответов 7
- edit3: Но что, если я хотел бы автоматизировать весь процесс?
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Как автоматически очистить неиспользуемые временные файлы в Linux
- Автоматическое очищение неиспользуемых временных файлов в Linux
- Как временные файлы очищаются с помощью таймера Systemd
- Как вручную очистить временные файлы
- Как очищается каталог / tmp?
- 7 ответов
- Чистка /var/tmp + /var/cache
- Что можно почистить и как?
- 4 ответа 4
- Что можно почистить и как?
Как безопасно очистить папку tmp в Linux
Я использую оперативную память для моих tmpfs / tmp, 2 ГБ, если быть точным. Обычно этого достаточно, но иногда процессы создают файлы там и не могут очистить после себя. Это может произойти, если они потерпят крах. Мне нужно удалить эти потерянные tmp файлы, иначе в будущем / tmp не хватит места.
Как я могу безопасно собрать мусор / TMP? Некоторые люди делают это, проверяя отметку времени последнего изменения, но этот подход небезопасен, поскольку могут существовать длительные процессы, которым все еще нужны эти файлы. Более безопасный подход — объединить условие отметки времени последней модификации с условием, что ни у одного процесса нет дескриптора файла для файла. Есть ли программа / скрипт / и т.д., которые воплощают этот подход или какой-то другой подход, который также безопасен?
Кстати, разрешает ли Linux / Unix режим открытия файла с созданием, при котором созданный файл удаляется при завершении процесса создания, даже если это происходит из-за сбоя?
Вы можете попробовать что-то вроде этого:
find /tmp -mtime +7 -and -not -exec fuser -s <> ‘;’ -and -exec echo <> ‘;’
find используется для поиска файлов, которые соответствуют определенным критериям.
- -mtime +7 выбираются только файлы старше 7 дней (вы можете использовать любое другое значение)
- -exec fuser -s <> ‘;’ вызывает fuser в режиме без вывода сообщений для каждого файла, который соответствует критериям устаревания. fuser возвращает 0 (= true) для каждого файла, к которому был получен доступ, и 1 (= false) для недоступных. Поскольку нас интересуют только недоступные, мы ставим -not перед этим -exec
- -exec echo <> ‘;’ просто печатает все имена файлов, соответствующие критериям. вы можете использовать -exec rm <> ‘;’ вместо этого здесь, но так как это может удалить некоторые все еще используемые файлы, я думаю, что безопаснее сначала сделать простое эхо.
- редактировать: вы можете захотеть добавить что-то подобное -name ‘foo*.bar’ или -uid 123 ограничить эффекты очистки конкретными шаблонами файлов или идентификаторами пользователей, чтобы избежать случайных эффектов.
К последнему пункту: Учтите, что могут быть файлы, которые записываются только один раз (например, при загрузке системы), но часто читаются (например, любой файл X-session-cookie). Поэтому я рекомендую добавить некоторые проверки имен, чтобы они влияли только на файлы, созданные неисправными программами.
edit2: К вашему последнему вопросу: файл не будет удален с диска, пока ни у одного процесса не будет открытого дескриптора (по крайней мере, для родных файловых систем linux). Проблема заключается в том, что запись в каталоге удаляется немедленно, а это означает, что с момента удаления файла новые процессы не смогут открыть файл (так как к нему не прикреплено имя файла).
edit3: Но что, если я хотел бы автоматизировать весь процесс?
Как я уже сказал, могут быть файлы, которые записываются один раз, а затем читаются время от времени (например, файлы cookie сеанса X, файлы PID и т. Д.). Они не будут исключены этим небольшим скриптом удаления (по этой причине вы можете сначала выполнить тестовый прогон, echo прежде чем удалять файлы).
Одним из способов реализации безопасного решения является использование atime .
atime хранит время последнего доступа к каждому файлу. Но эта опция файловой системы часто отключена, потому что она имеет некоторое влияние на производительность (согласно этому блогу где-то в 20-30% регионе). Есть relatime , но тот пишет время доступа только если mtime изменилось, так что этот нам не поможет.
Если вы хотите использовать atime , я бы порекомендовал размещать их /tmp на отдельном разделе (в идеале, на виртуальном диске), чтобы влияние на производительность системы не было слишком значительным.
После atime включения все, что вам нужно сделать, это заменить -mtime параметр в приведенной выше командной строке на -atime .
Возможно, вы сможете удалить -not -exec fuser -s <> ‘;’ , но я бы оставил его там просто для уверенности (на случай, если приложения будут держать файлы открытыми в течение длительного периода времени).
Но имейте в виду, что нужно протестировать команду echo перед тем, как вы удалите все, что нужно вашей системе!
Источник
Как безопасно очистить папку tmp в Linux
Я использую оперативную память для моих tmpfs /tmp, 2 ГБ, если быть точным. Обычно этого достаточно, но иногда процессы создают файлы там и не могут очистить после себя. Это может произойти, если они потерпят крах. Мне нужно удалить эти потерянные tmp файлы, иначе в будущем /tmp не хватит места.
Как я могу безопасно собрать мусор / TMP? Некоторые люди делают это, проверяя отметку времени последнего изменения, но этот подход небезопасен, поскольку могут существовать длительные процессы, которым все еще нужны эти файлы. Более безопасный подход — объединить условие отметки времени последней модификации с условием, что ни у одного процесса нет дескриптора файла для файла. Есть ли программа / скрипт / и т.д., которые воплощают этот подход или какой-то другой подход, который также безопасен?
Кстати, разрешает ли Linux/Unix режим открытия файла с созданием, при котором созданный файл удаляется при завершении процесса создания, даже если он произошел сбой?
7 ответов 7
Вы можете попробовать что-то вроде этого:
find /tmp -mtime +7 -and -not -exec fuser -s <> ‘;’ -and -exec echo <> ‘;’
find используется для поиска файлов, которые соответствуют определенным критериям.
- -mtime +7 выбирает только файлы старше 7 дней (вы можете использовать любое другое значение)
- -exec fuser -s <> ‘;’ вызывает fuser в режиме без вывода сообщений для каждого файла, который соответствует критериям устаревания. fuser возвращает 0 (= true) для каждого файла, к которому обращались в данный момент, и 1 (= false) для недоступных. Поскольку мы заинтересованы только в unaccessed те, мы ставим -not перед этим -exec
- -exec echo <> ‘;’ просто печатает все имена файлов, соответствующие критериям. Вы можете использовать -exec rm <> ‘;’ вместо этого здесь, но так как это может удалить некоторые все еще используемые файлы, я думаю, что безопаснее сначала сделать простое эхо.
- edit: вы можете захотеть добавить что-то вроде -name ‘foo*.bar’ или -uid 123 чтобы ограничить эффекты очистки конкретными шаблонами файлов или идентификаторами пользователей, чтобы избежать случайных эффектов.
К последнему пункту: Учтите, что могут быть файлы, которые записываются только один раз (например, при загрузке системы), но часто читаются (например, любой файл X-session-cookie). Поэтому я рекомендую добавить некоторые проверки имен, чтобы они влияли только на файлы, созданные неисправными программами.
edit2: К вашему последнему вопросу: файл не будет удален с диска, пока ни у какого процесса не будет открытого дескриптора к нему (по крайней мере, для родных файловых систем linux). Проблема заключается в том, что запись в каталоге удаляется немедленно, а это означает, что с момента удаления файла новые процессы больше не смогут его открыть (поскольку к нему не прикреплено имя файла).
edit3: Но что, если я хотел бы автоматизировать весь процесс?
Как я уже сказал, могут быть файлы, которые записываются один раз, а затем читаются время от времени (например, файлы cookie сеанса X, файлы PID и т.д.). Они не будут исключены этим небольшим скриптом удаления (по этой причине вам может понадобиться выполнить тестовый прогон с echo прежде чем фактически удалять файлы).
Одним из способов реализации безопасного решения является использование atime .
atime хранит время последнего доступа к каждому файлу. Но эта опция файловой системы часто отключена, потому что она имеет некоторое влияние на производительность (согласно этому блогу где-то в 20-30% регионе). Есть относительное relatime , но оно записывает время доступа только в том случае, если mtime изменилось, так что этот нам не поможет.
Если вы хотите использовать atime , я бы порекомендовал иметь /tmp на отдельном разделе (в идеале, на виртуальном диске), чтобы влияние на производительность системы не было слишком большим.
После включения atime все, что вам нужно сделать, это заменить параметр -mtime в приведенной выше командной строке на -atime .
Вы можете удалить -not -exec fuser -s <> ‘;’ , но я бы оставил его там просто для уверенности (в случае, если приложения сохраняют файлы открытыми в течение длительного периода времени).
Но имейте в виду, что нужно проверить команду с помощью echo прежде чем вы удалите все, что нужно вашей системе!
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Как автоматически очистить неиспользуемые временные файлы в Linux
4 минуты чтения
Как удалить неиспользуемые файлы в Linux? В этой статье вы узнаете, как настроить таймер, управляющий временными файлами. В большинстве современных систем Linux для оптимальной обработки требуется большое количество временных файлов и каталогов. В совокупности они могут потреблять гигабайты дискового пространства, если их не чистить часто. Поэтому необходимо удалить старые файлы, чтобы они не занимали место на диске.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Некоторые пользователи или приложения будут использовать каталог /tmp для хранения временных данных, в то время как другие используют более специфичное для задачи расположение, такое как каталоги демонов и непостоянных (volatile) пользовательских файлов в /run .
Непостоянные означает, что файлы существуют только в памяти. Если система перезагружается или происходит потеря питания, все содержимое энергозависимой памяти исчезнет.
Автоматическое очищение неиспользуемых временных файлов в Linux
В Red Hat Enterprise Linux 7 и новее включен новый инструмент systemd-tmpfiles . Этот инструмент предоставляет структурированный и настраиваемый метод управления временными каталогами и файлами.
Проверить запущенные сервисы можно командой:
При запуске служебного модуля systemd-tmpfiles-setup он запускает команду systemd-tmpfiles –create –remove . Команда проверяет файлы конфигурации из:
Если есть файлы и каталоги, отмеченные для удаления в указанных выше файлах конфигурации, они будут удалены. Для файлов и каталогов, отмеченных как для создания, они при необходимости создаются с правильными разрешениями.
Как временные файлы очищаются с помощью таймера Systemd
Блок таймера systemd , называемый systemd-tmpfiles-clean.timer , запускает службу systemd-tmpfiles-clean.service с регулярным интервалом, которая затем выполняет команду systemd-tmpfiles –clean .
В разделе [Timer] указывается, как часто следует запускать службу.
В приведенном выше примере служба systemd-tmpfiles-clean.service будет запущена через 15 минут после загрузки системы. Любой другой запуск происходит через 24 часа после последнего запуска службы. Вы можете настроить значения по своему вкусу.
Если вы внесете изменения, убедитесь, что вы перезагрузили сервис.
Как вручную очистить временные файлы
Давайте настроим systemd-tmpfiles для очистки каталога /mytmp . Это гарантирует, что в каталоге не будет файлов, которые не использовались последние 3 дня.
Вы можете скопировать пример файла конфигурации и обновить его — /usr/lib/tmpfiles.d/tmp.conf
Отредактируйте файл, как показано ниже.
Если вы хотите, чтобы каталог существовал с правильной принадлежностью, создайте конфигурацию, как показано ниже.
Любой файл в этом каталоге, который остается неиспользованным в течение последних 60 секунд, должен быть очищен.
После создания файла используйте следующую команду, чтобы убедиться, что файл содержит соответствующую конфигурацию.
Если вы не видите никаких ошибок в выводе, значит, это подтверждает правильность настроек конфигурации. Вы можете вызвать ручную очистку в любое время с помощью команды:
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник
Как очищается каталог / tmp?
Да, окна приложений, которые не имеют соответствующих значков, WM_CLASS и других наборов метаданных, должны считаться ошибкой в приложении, которое предоставляет эти окна.
7 ответов
Каталог по умолчанию очищается при каждой загрузке, потому что TMPTIME по умолчанию 0.
Здесь вы можете изменить время в следующем файле:
TMPTIME указывает, как частоту tmp dir может быть очищена в днях
Хотя папка /tmp не является местом для хранения файлов в течение длительного времени, иногда вы хотите сохранить что-то немного дольше, чем в следующий раз при перезагрузке, что является по умолчанию для систем Ubuntu. Я знаю, что время или два я загрузил что-то в /tmp во время тестирования, перезагрузился после внесения изменений, а затем снова потерял исходные данные. Это можно изменить, если вы хотите, чтобы ваши файлы /tmp были немного длиннее.
при следующем перезагрузке
Значение по умолчанию, которое говорит, что ваша система очистки /tmp при перезагрузке хранится в файле /etc/default/rcS.
Текущее значение TMPTIME=0 указывает на удаление файлов при перезагрузке, несмотря на возраст файла. Изменение этого значения на другой (положительный) номер изменит количество дней, в течение которых файл может выжить в /tmp.
Этот параметр позволит файлам оставаться в /tmp, пока они не станут недели, а затем удалить их при следующей перезагрузке. Отрицательное число (TMPTIME=-1) сообщает системе никогда ничего не удалять в /tmp. Это, вероятно, не то, что вы хотите, но доступно.
Источник
Чистка /var/tmp + /var/cache
В общем, острая нехватка места в системном каталоге. Из 42 Гб доступно 2,2 Гб. Сносил, что только мог и что пока не нужно. dnf autoremove и т.д. — не помогло, высвободилось немного места и стало доступно 2,5 Гб.
Если кратко:
/var/cache:
/var/tmp:
Что можно почистить и как?
Остальное не так критично. Ну ещё и /var/log 2.4 Гб.
4 ответа 4
Поиски дали вот что
./rMD-session-XXXX это временные директории (содержат много файлов) программы RecordMyDesktop. В силу каких-то причин они не удалились самой программой и легко удаляются вручную из-под обычного пользователя.
Кеш установочных пакетов, накопленных после многократных обновлений/переустановок чистятся так
Ну а логи можно почистить, например так:
Что можно почистить и как?
В линуксах есть такая утилита, называется она baobab.
Baobab — программа для анализа использования ёмкости разделов диска из состава свободной среды рабочего стола GNOME. Графически показывает, какие папки занимают больше места на диске. Начиная с версии 2.4.2 Baobab становится частью пакета gnome-utils .
Disk Usage Analyzer — is a graphical disk usage analyzer for GNOME. It was part of gnome-utils , but was split off for GNOME 3.4. It was originally named Baobab . The software gives the user a menu-driven, graphical representation of what is on a disk drive. The interface allows for selection of specific parts of filesystem being scanned so a single folder, the entire filesystem, and even remote folders and filesystems can be scanned. The graphical representation can be switched between a ring chart and a treemap chart so the presentation can be tailored to the specific content being scanned.
Источник