Я бы предложил вам другие пути :) 1. изображения сохраняются в /zfs/temp-path-1/yyyymmdd раз в сутки (или как вам нужно часто) вы делаете копирование каждого пятого файла в /zfs/real-store-path и по истечению суток можно удалить директорию старых суток
2. если вам не принципиально чтобы был именно каждый пятый согласно нумерации, а просто приближение - то есть просто брать 20% изображений, то можно поиграться с кроном - дёргать каждые несколько минут/часов и делать не полный find, а find -Bnewer stampfile ; .... ; touch stampfile; Тогда будет полегче. 17 февраля 2015 г., 9:59 пользователь Sergey Rudenko <[email protected]> написал: > > > 17.02.2015 04:34, Vladislav V. Prodan пишет: > > Имеем хранилище изображений с камер на ZFS. Изображения сохраняются > каждые > > 15 секунд. > > Нужно периодически прореживать, оставлять каждое 5-е изображение > > > > > > Скрипт работает примерно около суток. Хочется, побыстрее. > > > > Благодарю за мнения и помощь. > > > > #!/bin/sh > > > > dir=/backup/AAA/video/home/2014/09/ > > > > #exit > > > > # delete all video > > find $dir -type f -name "*.mp4" -o -name "*.avi" -exec rm -rf {} \; > > > > > > # leave every fifth file, and the rest - remove > > for i in `find $dir -type d` > > do > > cd $i || exit; > > ls $i | grep snap-\*\.\*\.\*\.jpg | awk 'NR%5!=1' | xargs -I{} -n1 > rm {} > > done; > > > > > > > > Не знаю будет ли это быстрее, но можно попробовать сделать так > Изображения вероятно нумеруются либо дата-номер либо таймстамп > Можно считывать самое старое изображение и по циклу удалять каждые +5 > изображений, увеличивать счётчик на 5 и далее по циклу. > -- Regards, Alexander Yerenkow
