🇺🇳 Как найти и удалить файлы старше определенного периода времени в Linux

by itisgood

Поиск по метке времени файла

Файловые системы Unix / Linux имеют три типа отметок времени для каждого файла. Они заключаются в следующем:

  • Время доступа (-atime): отметка времени последнего обращения к файлу.
  • Время изменения (-mtime): отметка времени последнего изменения файла.
  • Время изменения (-ctime): отметка времени последнего изменения метаданных для файла (например, прав доступа или владельца).

Поиск и удаление файла старше 7 дней

Давайте рассмотрим пример, в котором мы найдем и удалим файл старше 7 дней.

Для этого мы будем использовать опцию «-mtime» команды find.

# find /path_to_directory -mtime +7 -type f -exec ls {}\;

2. Если имена файлов начинаются с какого-либо конкретного шаблона, отфильтруйте его следующим образом:

# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec ls {}\;

3. После проверки и подтверждения вывода, перейдите к скрипту удаления (это очень важно), в противном случае произойдет безвозвратная потеря данных.

# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {}\;

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

# ssh user@remote_ip "find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {} \; >> /tmp/backup_deletion`date +%Y%m%d`.log 2>&1"

Заключение

Параметр -mtime будет искать файлы по времени модификации; время поиска в зависимости от времени изменения.

Время использования -atime, -mtime и -ctime измеряется в днях.

Команда find также поддерживает параметры, измеряемые в минутах.

Опции:

-амин (время доступа)
-mmin (время модификации)
-cmin (изменить время)

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

# find . -type f -amin +7 -print

Опция -newer

Опция -newer указывает эталонный файл со временем модификации, который будет использоваться для выбора файлов, измененных раньше, чем эталонный файл.

Найдите все файлы, которые были изменены совсем раньше, чем файл file.txt:

# find . -type f -newer file.txt -print

 

You may also like

Leave a Comment