Find linux удаление старых файлов

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

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

Вот быстрый способ сделать это.

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

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

Отказ от ответственности: вы должны быть очень осторожны при выполнении этих команд.

Эти команды не запрашивают подтверждения перед удалением файлов.

Он просто удалит файлы после нажатия клавиши ENTER. Так что будьте очень осторожны!

Сначала давайте узнаем файлы старше X дней, например 30 дней.

Чтобы сделать так, просто:

Вышеупомянутая команда найдет и отобразит старые файлы старше 30 дней. Вот,

dot (.) – Представляет текущий каталог.
-mtime – представляет время изменения файла и используется для поиска файлов старше 30 дней.
-print – отображает старые файлы

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

Например, чтобы узнать файлы, которые старше 30 дней в каталоге / home / sk / Downloads, просто запустите:

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

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

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

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

Вы можете использовать свободное пространство для любых других полезных целей.

Источник

bash как удалить файлы и директории, старше x-дней?

Есть некая директория Test. В ней находятся файлы и папки. Как удалить только то, что старше 10 дней к примеру.

приводит к удалению и самой директории Test, если в ней нет свежих файлов, естественно.

find /volume1/Test -mtime +10 -exec rm <> \; ?

TС: добавь ключик type -f к файнду и в результате будут только файлі.

TС: добавь ключик type -f к файнду и в результате будут только файлі.

Там не только файлы под удаление, но и папки, в том то и проблема.

Читайте также:  Службы windows создание службы для windows

При Test, без свежих файлов, удаляет и саму Test

Разница в скорости будет незаметна, но зато есть везде, ибо posix. Но для не \;, а +

про ключ -mindepth тебе уже писали

про ключ -mindepth тебе уже писали

Всегда удивляет в тутошних комментаторов желание решить как можно узкую задачу с возможностью появления завтра у ТСа еще вопроса, например, что делать, если в каталоге появится другие подкаталоги и rm на них ругается. Одно дело, когда универсальное требует кучу нового кода, другое дело, что правильный ответ скорее всего не -mindepth, а таки тоже уже данный «-type f»

При Test, без свежих файлов, удаляет и саму Test

Вариант с * не затронет сам каталог

Утилита tmpwatch. Одна короткая строчка. И никаких предлагаемых тут нагромождений.

приводит к удалению и самой директории Test, если в ней нет свежих файлов, естественно.

делай touch /path/to/search/dir/.placeholder перед запуском find и всё. Никаких find dir/*, это пропустит все файлы и директории начинающиеся с точки «.»

с возможностью появления завтра у ТСа еще вопроса, например, что делать, если

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

Задачи нужно решать по условию и по мере поступления, а не прикидываться Вангой.

Задачи нужно решать по условию и по мере поступления, а не прикидываться Вангой.

Вот только у вас не Ванга, а натуральный наполеонизм какой-то. Я комментировал не вас, а teod0r-а, который комментировал скрипт bash как удалить файлы и директории, старше x-дней? (комментарий)

Скорее всего я просто не совсем верно интерпретировал ваш пост.

Источник

linux-notes.org

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

Хочу в этой теме «Как найти и удалить файлы старше конкретной даты в Linux» рассказать как можно найти и удалить определенные файлы по дате в ОС Linux таких как Debian, Ubuntu или Redhat, Centos. На готовых примера покажу что и как нужно делать.

1. Посмотрим список всех файлов в папке с датой изменения, для этого стоит выполнить команду:

пример использование команды ls -lah для вывода подробной информации о файлах

2. Чтобы узнать сегодняшнюю дату, нужно выполнить:

3. Команда что выше не вывела полную дату, можно это исправить:

4. Допустим нужно найти файлы и удалить их по определенной дате.

Если нужно найти все файлы свыше 3 дня и после чего удалить их:

Если нужно найти все файлы свыше 90 дней и после чего удалить их:

Если нужно найти все файлы свыше 365 дней и после чего удалить их:

Если нужно найти все файлы свыше 100 дней и после чего удалить их:

Читайте также:  Sstp vpn server linux

Удаление файлов старше N дней

можно еще вот так:

Ключи:
-name — искать по имени файла, при использовании подстановочных образцов параметр заключается в кавычки.
-type — тип искомого: f=файл, d=каталог, l=ссылка (link).
-user — владелец: имя пользователя или UID.
-group — владелец: группа пользователя или GID.
-perm — указываются права доступа.
-size — размер: указывается в 512-байтных блоках или байтах (признак байтов — символ «c» за числом).
-atime — время последнего обращения к файлу.
-ctime — время последнего изменения владельца или прав доступа к файлу.
-mtime — время последнего изменения файла.
-newer другой_файл — искать файлы созданные позже, чем другой_файл.
-delete — удалять найденные файлы.
-ls — генерирует вывод как команда ls -dgils.
-print — показывает на экране найденные файлы.
-exec command <> \; — выполняет над найденным файлом указанную команду; обратите внимание на синтаксис.
-ok — перед выполнением команды указанной в -exec, выдаёт запрос.
-depth — начинать поиск с самых глубоких уровней вложенности, а не с корня каталога.
-prune — используется, когда вы хотите исключить из поиска определённые каталоги.
N — количество дней.

Источник

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

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

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

Опция -newer

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

Источник

Tamkovich.com: Телеком/VoIP блог

Современные технологии: Asterisk, SIP, Kamailio, Linux, Cisco, Linksys

Рубрики

Метки

Комментарии

    rius (2020-08-12 13:04): К примеру, тут http://vbp.maxnet.ru/files и https://www.thingiverse.com/ri us/designs или связаться со мной —.
    Dmitry (2019-04-30 19:08): В статье описано только то, что сделать для попадания сообщений о флуде в лог, но ведь нужно еще fail2ban на эти.
    Синхронист (2019-04-26 20:08): А где можно скачать готовые файлы для заливки в ЧПУ?
    Александр (2018-02-12 11:18): TDA5145 — это очень плохая микросхема сама по себе, и тем более, когда её пытаются использовать для моторчиков.
    Маэстро (2017-04-27 06:41): это не просто телек а чюдо ! шедевр технологий ! и сама фирма ( но если SONY теперь или на будущие начнет халтурить и.
    Джон Смит (2017-01-14 11:25): Здравствуйте, много лет прошло с написания этой статьи, но и по сей день она не потеряла актуальности, спасибо Вам.
    Simplew (2016-09-02 18:52): > А если нужно провести 10 тысяч регистраций в 4 потока, какие нужны опции? xml под это дело есть, а вот опции.
    techbird (2016-06-28 22:20): как вариант,залогиниться(root) по ssh к своему серверу набрать echo ’12 2 * * * root find /http/image/cache.
    Alexey (2016-06-10 19:41): Тут кто то еще этим занимается? Сейчас пытаюсь разобраться с данной темой но чет на такие подводные камни натыкаюсь(
    Den (2016-05-31 01:25): http://youtu.be/qIqfAQV-hCU тут самый простой способ пуска движка hdd от батарейки на простом мк
Читайте также:  Как убрать окно срок действия вашей лицензии windows истекает

Регулярное удаление старых файлов с помощью cron и find

24 мая, 2010 by Сергей Тамкович

Если вы записываете разговоры проходящие через ваш Asterisk, вы можете столкнуться с переполнением диска. Что бы избежать этой проблемы, надо регулярно удалять старые записи с сервера. Операции над файлами старше определённого возраста — стандартная возможность команды find. Делается это следующим образом:

find выполнит команду указанную в параметре exec, для каждого файла чье содержимое не менялось последние mtime суток. Т.е. в данном примере файлы записанные более 90 суток назад — будут удалены. Добавляем эту строку в crontab:

И теперь старые файлы будут удаляться каждую ночь автоматически — cron-ом.

Похожие статьи

5 комментариев to “Регулярное удаление старых файлов с помощью cron и find”

а как можно не удалять файлы а перемещать к примеру в папку архив с названием дата и время? чтобы позже можно было их прослушать.

перемещать файлы можно командой mv, вычислять дату/время — командой date.

Я извиняюсь. пытаюсь разобраться в этом corn сам совсем не программист.

Но не как не могу понять куда вводить эту строчку. На хостинге табличка со временем сдвига и нечего больше нету куда вводить этот скрипт. У меня нужно чистить папку /http/image/cache и удалять файлы старше 2х дней.

я так понимаю что скрипт должен быть таким:
12 2 * * * root find /http/image/cache -mtime +2 -exec rm <> \;

Но куда его ввести я не знаю. Подскажите пожалуйста!!

как вариант,залогиниться(root) по ssh к своему серверу набрать
echo ’12 2 * * * root find /http/image/cache -mtime +2 -exec rm <> \;’>>/etc/crontab

Источник

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