К основному контенту

✏️ Как удалить файлы, которые не были доступны в течение определенного времени на Linux

Мы уже рассмотрели, как вручную находить и удалять файлы старше X дней с помощью команды find в Linux.

Как найти и удалить файлы старше X дней в Linux

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

Передайте «Tmpwatch», утилите командной строки для рекурсивного удаления файлов, к которым не было доступа в течение определенного времени.

Не только файлы, tmpwatch также удалит пустые каталоги.

По умолчанию Tmpwatch решает, какие файлы/каталоги следует удалить, основываясь на их времени (времени доступа).

Конечно, вы можете изменить это поведение, используя также значения ctime (время изменения inode), mtime (время изменения).

Обычно Tmpwatch можно использовать для удаления содержимого каталога /tmp и других неиспользуемых материалов, таких как старые файлы журнала.

Важное предупреждение !!

Перед началом использования этого инструмента вы должны знать, что Tmpwatch рекурсивно удаляет файлы и каталоги на основе заданных критериев. Не запускайте tmpwatch в/(root каталоге). Этот каталог содержит важные файлы, которые необходимы для работы системы Linux. Если вы не будете осторожны, tmpwatch удалит важные системные файлы и каталоги, которые соответствуют заданным критериям, во всем корневом каталоге. В инструмент Tmpwatch не встроен защитный механизм, который бы препятствовал запуску его в корневом каталоге. Таким образом, нет способа отменить операцию. Вы были предупреждены!

Установка Tmpwatch

Tmpwatch доступен в репозиториях по умолчанию большинства дистрибутивов Linux.

На Fedora вы можете установить его с помощью команды:

$ sudo dnf install tmpwatch

НаCentOS:

$ sudo yum install tmpwatch

НаopenSUSE:

$ sudo zypper install tmpwatch

В Debian и его производных, таких как Ubuntu, Tmpwatch доступен под другим именем, т.е. Tmpreaper.

Tmpreaper в основном основан на `tmpwatch-1.2/1.4 ‘Эрика Троана из Redhat. Теперь tmpreaper поддерживается Debian Полом Слотманом.

$ sudo apt install tmpreaper

Удалите файлы, которые не были доступны в течение определенного времени, используя Tmpwatch/Tmpreaper

Использование Tmpwatch и Tmpreaper практически одинаково.

Если вы работаете в системах на основе Debian, замените «Tmpwatch» на «Tmpreaper» в следующих примерах.

Удалить файлы, к которым нет доступа более X дней

Чтобы удалить файлы старше 10 дней, запустите:

tmpwatch 10d /var/log/

Приведенная выше команда удалит все файлы и пустые каталоги, к которым не было доступа более 10 дней, из /var/log/.

Удалить файлы, которые не были изменены более X дней

Как я уже сказал, Tmpwatch будет удалять файлы в зависимости от времени доступа к ним.

Вы также можете удалять файлы в зависимости от времени их изменения (mtime).

Например, следующая команда удалит файлы, которые не были изменены в течение 10 дней по указанному пути.

tmpwatch -m 10d /var/log/
Здесь -m обозначает время модификации, а d — параметр . Параметропределяет возрастной порог для удаления файлов. Вы можете использовать следующие параметры time_spec для удаления файлов.
  • d — на дни,
  • h — часами,
  • m — на минуты,
  • s — на секунды.

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

tmpwatch -m 10 /var/log/

Удалить символические ссылки

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

tmpwatch -s 10 /var/log/

Удалить все файлы

tmpwatch -a 10 /var/log/

Приведенная выше команда удалит все типы файлов, включая обычные файлы, символические ссылки и каталоги в папке /var/log/.

Исключить каталоги из удаления

Иногда вы можете захотеть удалить файлы, но не каталоги. если это так, команда будет:

tmpwatch -am 10 --nodirs /var/log/

Приведенная выше команда удалит все файлы, кроме каталогов, которые не были изменены в течение последних 10 часов.

Выполните тестовый прогон, фактически не удаляя ничего

Иногда вы можете захотеть посмотреть, какие файлы на самом деле будут удалены.

Это будет полезно при запуске Tmpwatch в важном каталоге.

Если это так, запустите Tmpwatch в тестовом режиме с параметром -t.

tmpwatch -t 30 /var/log/

Пример вывода с сервера CentOS 7:

removing file /var/log/wtmpremoving directory /var/log/ppp if emptyremoving directory /var/log/tuned if emptyremoving directory /var/log/anaconda if emptyremoving file /var/log/dmesg.oldremoving file /var/log/boot.logremoving file /var/log/dnf.librepo.log

В системах на основе Debian вы увидите вывод, подобный приведенному ниже.

$ tmpreaper -t 30 /var/log/(PID 1803) Pretending to clean up directory `/var/log/'.(PID 1804) Pretending to clean up directory `apache2'.Pretending to remove file `apache2/error.log'.Pretending to remove file `apache2/access.log'.Pretending to remove file `apache2/other_vhosts_access.log'.(PID 1804) Back from recursing down `apache2'.(PID 1804) Pretending to clean up directory `dbconfig-common'.Pretending to remove file `dbconfig-common/dbc.log'.(PID 1804) Back from recursing down `dbconfig-common'.(PID 1804) Pretending to clean up directory `dist-upgrade'.(PID 1804) Back from recursing down `dist-upgrade'.(PID 1804) Pretending to clean up directory `lxd'.(PID 1804) Back from recursing down `lxd'.Pretending to remove file `/var/log//cloud-init.log'.(PID 1804) Pretending to clean up directory `landscape'.Pretending to remove file `landscape/sysinfo.log'.(PID 1804) Back from recursing down `landscape'.
Это только симулирует операцию, но фактически ничего не удаляет. Tmpwatch просто выполнит пробный прогон и покажет вам, какие файлы будут удалены в выводе.

Принудительное удаление файла

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

tmpwatch -f 10h /var/log/
Обычно файлы, принадлежащие текущему пользователю, без прав на запись, не удаляются.

Опция -f также удалит их.

Опять же, пожалуйста, будьте осторожны при использовании команд Tmpwatch/Tmpreaper.

Перед запуском дважды проверьте путь, чтобы избежать потери данных.

Для более подробной информации обратитесь к справочным страницам.

$ man tmpwatch

или,

$ man tmpreaper

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользователям пр…

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображений PNG, J…

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone https://gith…