The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Нужно чистить файлы по опрееленным критериям"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Нужно чистить файлы по опрееленным критериям"  +/
Сообщение от universite email(ok) on 23-Июл-11, 15:30 
Лежит в директории куча бэкапов

config-00.32-27.12.2010.tar.bz2
config-02.32-21.03.2011.tar.bz2
config-04.17-01.02.2011.tar.bz2
config-04.17-01.03.2011.tar.bz2
config-04.17-01.04.2011.tar.bz2
config-04.17-01.05.2011.tar.bz2
config-04.17-01.06.2011.tar.bz2
...

нужно скриптом удалять лишние.
1) Хранить  файлы за последний месяц.
2) Хранить за 2-6 месяц только за 1,15 число
3) Харнить за 7 и последующие месяцы - только за первое число.


пока думаю заюзать find

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Нужно чистить файлы по опрееленным критериям"  +/
Сообщение от Andrey Mitrofanov on 23-Июл-11, 16:07 
> пока думаю заюзать find

юзай ls!

ls config-*.tar.bz2 | $умный_фильтр |xargs rm

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Нужно чистить файлы по опрееленным критериям"  +/
Сообщение от universite email(ok) on 23-Июл-11, 19:51 
> пока думаю заюзать find


dir=/path/to/target
find $dir -type f  -mtime +30  ! \( -name "*-0*-01.*.tar.bz2" -o -name "*-0*-15.*.tar.bz2" \)  -delete
find $dir -type f  -mtime +180 !    -name "*-0*-01.*.tar.bz2" -delete

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Нужно чистить файлы по опрееленным критериям"  +/
Сообщение от universite email(ok) on 23-Июл-11, 19:59 
>> пока думаю заюзать find
>
 
> dir=/path/to/target
> find $dir -type f  -mtime +30  ! \( -name "*-0*-01.*.tar.bz2"
> -o -name "*-0*-15.*.tar.bz2" \)  -delete
> find $dir -type f  -mtime +180 !    -name
> "*-0*-01.*.tar.bz2" -delete
>

-delete не заработала, несмотря на:


     -delete
             Delete found files and/or directories.  Always returns true.
             This executes from the current working directory as find recurses
             down the tree.  It will not attempt to delete a filename with a
             ``/'' character in its pathname relative to ``.'' for security
             reasons.  Depth-first traversal processing is implied by this
             option.  Following symlinks is incompatible with this option.

Пришлось, через " -exec rm -rf {} \;" удалять


dir=/path/to/target
find $dir -type f  -mtime +30  ! \( -name "*-0*-01.*.tar.bz2" -o -name "*-0*-15.*.tar.bz2" \)  -exec rm -rf {} \;
find $dir -type f  -mtime +180 !    -name "*-0*-01.*.tar.bz2" -exec rm -rf {} \;

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру