Есть доступ до хранилища куда складываются логи, дампы и етц.
Формата к примеру дампов такой
ozonshop_db_db-08-07-2019-04-00-01.sql.gz
префикс-день-месяц-год-час-минута-секунда.расширение
Вопрос как можно удалять данные файлы ? Была идея как то выносить в массив имена файлов в директории, далее отрезать часть не имеющую отношения к дате, сортировать новый список, и потом удалять что старше 5 дней.
Но сортировка пока не получается. Вообще нету идей как ее сделать.
стороние утилиты по типу logrotate и так далее использовать НЕЛЬЯ - там(на мифическом хранилище) негде ставить.
Удаление файлов по именам
tamahcki, [url=linux-notes.org/kak-najti-i-udalit-fajly-starshe-konkretnoj-daty-v-linux/]Google работает за нас[/url]
Хех)))
В том то и дело что по дате файлов ( свойства файлов ) нельзя, за 1 подход может выволиться на сервер по 100 файлов, у всех будет 1 дата создания, но разные имена.
Потому и думаю как парсить именя файлов и удалять по ним. 8)
К примеру -
-rw-r--r-- 1 oracle oinstall 0 Aug 7 16:10 ozonshop_db_db-08-02-2019-04-00-01.sql.gz
-rw-r--r-- 1 oracle oinstall 0 Aug 7 16:10 ozonshop_db_db-08-07-2019-04-00-01.sql.gz
Распарсить дату из имени файла в POSIX-формат
date -d "$($FILENAME | awk -F "-" '{print $3$2$4}')" +%s)Получить POSIX дату за минусом 4-х суток от текущей
UTIME=$(expr $(date +%s) - 345600)А дальше тупым сравнением [[Если дата файла меньше или равно $UTIME]] то делаем rm file
Получить в секундах время файла:
date -d "$(echo ozonshop_db_db-08-02-2019-04-00-01.sql.gz|awk -F "-" '{print $3"/"$2"/"$4" "$5":"$6}') " +%sПолучить текущее время в секундах:
date -u +%sА дальше уже думать...