Удалить временные файлы линукс

Очистка файловых систем в Linux

В любых системах со временем и в процессе работы уменьшается свободное пространство. А это один из тех важнейших ресурсов, за которым системные администраторы должны следить особенно пристально. Порой после установки небольшого пакета оказывается, что за время своей работы этот пакет сгенерировал временных файлов. По объёму в несколько раз больше, чем сам этот пакет. Обычные текстовые log-файлы также могут занимать значительный объём. Если их генерация и хранение не настроены должным образом. Поэтому в системном администрировании очень важно регулярно проводить очистку файловых систем (ФС) от бесполезного объёма данных. Которые отъедают драгоценное дисковое пространство.

Временные и ненужные файлы

Как уже отмечалось, в любой работающей ОС (в особенности в активно работающей) всегда имеются ненужные и/или временные файлы. Так, к примеру в случае каких-либо сбоев системное ядро создаёт файлы с информацией об адресном пространстве программы (дампы памяти) на момент сбоя. Такие файлы обычно имеют имя core, core.pid или program.core. В зависимости от ситуации, в которой произошёл сбой и последующая генерация подобных файлов, их размер может быть в несколько мегабайт, а если сбои не учитывались администратором и происходили часто, то в совокупности теряется внушительный объём свободного пространства, который крайне расточительно отводить для хранения core-файлов, представляющих интерес только для разработчиков и специалистов по отладке программного обеспечения (ПО). В некоторых системах работу системных ядер можно сконфигурировать таким образом, чтобы дампы памяти вообще не генерировались, либо, чтобы они помещались в отдельный каталог и это очень удобно и для разработчиков, отладчиков, а также и для системных администраторов. Для уточнения этой информации следует обратиться к страницам справочного руководства используемой системы с помощью команды man core для Linux или man coreadm для Solaris.

В Linux-системах существуют также каталоги, специально предназначенные для хранения временных файлов — /tmp и /var/tmp. В этих каталогах программы сохраняют свои данные, актуальные только во время сеанса их запуска, например кеш закачек и т. д. Также эти каталоги используются текстовыми редакторами для хранения резервных копий документов и истории редактирования. И хотя в современных системах и существуют специализированные скрипты (обычно запускаются при старте системы), очищающие эти каталоги, однако не всегда ненужная информация может быть очищена таким образом, особенно это касается работающих длительное время серверов.

Читайте также:  Эмулятор командной строки linux

Естественно, подобные скрипты можно запускать и по расписанию, не дожидаясь плановой перезагрузки или технического обслуживания (ТО) серверов, используя cron, что часто и делают многие системные администраторы. Конечно, в таком случае скрипты очистки должны быть тщательно протестированы и соответствовать техническим регламентам, принятым в организации, чтобы исключить вероятность удалить что-то действительно нужное в системе, а также как можно меньше мешать основной работе системы.

Когда используется сетевая ФС NFSv3, то на серверах, которые её обслуживают также могут накапливаться внушительные объёмы ненужных файлов, которые обычно имеют имена, соответствующие «.nfsxxx», где xxx – некоторый числовой код.

Как удалить не нужные файлы

Самым эффективным средством по избавлению от «мусора» в системе по праву считается команда find. Для многих системных администраторов это вторая по частоте использования команда после sudo.

Для удаления неиспользуемых за прошедшие семь дней файлов с именем core можно воспользоваться командой следующего вида:

find / -xdev -type f '(' -name core -o name 'core.5*' -o name ’*.core' ')' -atime +7 -ехес rm -f < >';'

В данном примере следует обратить особое внимание на параметр -xdev (в некоторых системах -x), который ограничивает использование команды find строго в пределах корневой файловой системы. Всё-таки излишняя осторожность не помешает. Да и вообще такой метод более удобен, когда в системе монтируются множество ФС. В таком случае нужно выполнять приведённую команду отдельно для каждой из файловых систем, поскольку, как правило каталог /var (в котором собирается много ненужных и временных файлов) часто является отдельной ФС — об этом нужно помнить. Параметр type -f указывает удалять только файлы, поскольку в каталоге с исходными кодами есть каталог core (с исходными кодами ядра), имя которого совпадает с маской в приведённой команде find, однако каталог core удалять крайне не желательно.

Для избавления от ненужных и временных файлов, создаваемых различными текстовыми редакторами можно использовать такую команду:

find / -xdev -atime +3 '(' -name '#*' -о -name '.#*' -о -name '*.CKP' -о -name '*~' -о -name '.nfs*' ')' -ехес rm -f < >';'

В результате будут удалены файлы с именами, начинающимися на .#, # и .nfs, а также те, которые имеют расширение *.CKP и ~.

Важно помнить и о том, что если ФС была смонтирована с опцией noatime (для команды mount), то все вышеприведённые команды будут малоэффективны, поскольку опция noatime заставляет смонтированную ФС не хранить временные метки доступа к файлам, а все вышеприведённые примеры учитывают условие, отражающее время доступа к файлам. Поэтому в данном случае нужно усложнять условия поиска для команды find.

Читайте также:  Python script executable in linux

Следующая команда удаляет все подкаталоги каталога /tmp, причём только те, к которым не было обращений более трёх дней:

cd /tmp; find . ! -name . ! -name lost+found -type d -mtime +3 -ехес /bin/rm -rf < >';'

В данном примере присутствует маска для исключения подкаталога lost+found. Это очень важно, т. к. этот подкаталог будет присутствовать в /tmp, в том случае, если /tmp является отдельной файловой системой. Естественно каталог lost+found ни в коем случае не должен быть удалён.

Если после проделанных выше действий у вас в системе не освободилось необходимого места, то ищем большие каталоги и файлы как это сделать читаем в этой статье

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Похожие записи:

Источник

Как автоматически очистить неиспользуемые временные файлы в Linux

img

Как удалить неиспользуемые файлы в Linux? В этой статье вы узнаете, как настроить таймер, управляющий временными файлами. В большинстве современных систем Linux для оптимальной обработки требуется большое количество временных файлов и каталогов. В совокупности они могут потреблять гигабайты дискового пространства, если их не чистить часто. Поэтому необходимо удалить старые файлы, чтобы они не занимали место на диске.

Как автоматически очистить неиспользуемые временные файлы в Linux

Некоторые пользователи или приложения будут использовать каталог /tmp для хранения временных данных, в то время как другие используют более специфичное для задачи расположение, такое как каталоги демонов и непостоянных (volatile) пользовательских файлов в /run .

Непостоянные означает, что файлы существуют только в памяти. Если система перезагружается или происходит потеря питания, все содержимое энергозависимой памяти исчезнет.

Автоматическое очищение неиспользуемых временных файлов в Linux

В Red Hat Enterprise Linux 7 и новее включен новый инструмент systemd-tmpfiles . Этот инструмент предоставляет структурированный и настраиваемый метод управления временными каталогами и файлами.

Проверить запущенные сервисы можно командой:

$ systemctl status systemd-tmpfiles-* ? systemd-tmpfiles-setup.service - Create Volatile Files and Directories Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-setup.service; static; vendor preset: disabled) Active: active (exited) since Mon 2020-02-10 08:27:50 EAT; 1 weeks 3 days ago Docs: man:tmpfiles.d(5) man:systemd-tmpfiles(8) Process: 794 ExecStart=/usr/bin/systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev (code=exited, status=0/SUCCESS) Main PID: 794 (code=exited, status=0/SUCCESS) CGroup: /system.slice/systemd-tmpfiles-setup.service Feb 10 08:27:50 envoy-nginx.novalocal systemd[1]: Starting Create Volatile Files and Directories. Feb 10 08:27:50 envoy-nginx.novalocal systemd[1]: Started Create Volatile Files and Directories. ? systemd-tmpfiles-setup-dev.service - Create Static Device Nodes in /dev Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-setup-dev.service; static; vendor preset: disabled) Active: active (exited) since Mon 2020-02-10 08:27:49 EAT; 1 weeks 3 days ago Docs: man:tmpfiles.d(5) man:systemd-tmpfiles(8) Process: 553 ExecStart=/usr/bin/systemd-tmpfiles --prefix=/dev --create --boot (code=exited, status=0/SUCCESS) Main PID: 553 (code=exited, status=0/SUCCESS) CGroup: /system.slice/systemd-tmpfiles-setup-dev.service Feb 10 08:27:49 envoy-nginx.novalocal systemd[1]: Starting Create Static Device Nodes in /dev. Feb 10 08:27:49 envoy-nginx.novalocal systemd[1]: Started Create Static Device Nodes in /dev.

При запуске служебного модуля systemd-tmpfiles-setup он запускает команду systemd-tmpfiles –create –remove . Команда проверяет файлы конфигурации из:

Читайте также:  Linux set timezone and time

Если есть файлы и каталоги, отмеченные для удаления в указанных выше файлах конфигурации, они будут удалены. Для файлов и каталогов, отмеченных как для создания, они при необходимости создаются с правильными разрешениями.

Как временные файлы очищаются с помощью таймера Systemd

Блок таймера systemd , называемый systemd-tmpfiles-clean.timer , запускает службу systemd-tmpfiles-clean.service с регулярным интервалом, которая затем выполняет команду systemd-tmpfiles –clean .

В разделе [Timer] указывается, как часто следует запускать службу.

$ cat /usr/lib/systemd/system/systemd-tmpfiles-clean.timer # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. [Unit] Description=Daily Cleanup of Temporary Directories Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) [Timer] OnBootSec=15min OnUnitActiveSec=1d

В приведенном выше примере служба systemd-tmpfiles-clean.service будет запущена через 15 минут после загрузки системы. Любой другой запуск происходит через 24 часа после последнего запуска службы. Вы можете настроить значения по своему вкусу.

Если вы внесете изменения, убедитесь, что вы перезагрузили сервис.

sudo systemctl daemon-reload sudo systemctl enable --now systemd-tmpfiles-clean.timer

Как вручную очистить временные файлы

Давайте настроим systemd-tmpfiles для очистки каталога /mytmp . Это гарантирует, что в каталоге не будет файлов, которые не использовались последние 3 дня.

Вы можете скопировать пример файла конфигурации и обновить его — /usr/lib/tmpfiles.d/tmp.conf

Отредактируйте файл, как показано ниже.

$ sudo vim /etc/tmpfiles.d/mytmp.conf See tmpfiles.d(5) for details # Clear tmp directories separately, to make them easier to override q /mytmp 1777 root root 3d

Если вы хотите, чтобы каталог существовал с правильной принадлежностью, создайте конфигурацию, как показано ниже.

d /run/mytmp 0700 root root 60s

Любой файл в этом каталоге, который остается неиспользованным в течение последних 60 секунд, должен быть очищен.

После создания файла используйте следующую команду, чтобы убедиться, что файл содержит соответствующую конфигурацию.

sudo systemd-tmpfiles --create /etc/tmpfiles.d/mytmp.conf

Если вы не видите никаких ошибок в выводе, значит, это подтверждает правильность настроек конфигурации. Вы можете вызвать ручную очистку в любое время с помощью команды:

systemd-tmpfiles --clean /etc/tmpfiles.d/mytmp.conf

Источник

Оцените статью
Adblock
detector