Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37428534
en ru br
ALT Linux repos
S:0.3.0-alt2
5.0: 0.2.1-alt1
4.1: 0.2.1-alt1
4.0: 0.2.1-alt1
3.0: 0.2.0-alt1

Group :: Archiving/Backup
RPM: ls4sweep

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Name: ls4sweep
Version: 0.3.0
Release: alt2

Summary: Policy-based listing old backups for sweeping
License: GPL
Group: Archiving/Backup
Url: http://ilya-evseev.narod.ru/posix/%name
Source0: %url/%name-%version.tar.gz

BuildPreReq: help2man, gcc, glibc-devel, make
BuildPreReq: xsltproc, docbook-dtds, docbook-style-xsl

# %define rman1dir %_mandir/ru/man1


Summary(ru_RU.KOI8-R): Прореживание ежедневных архивных копий по заданным правилам

%description
%name should be used as helper for removing extra old daily-created backups.

Sweeping policy consists from the set of records, where each record contains
the count of intervals (or periods) and the length of one period (in days).
%name checks creation or modification time of given files and displays names
of those when they mismatch policy. Only one file is keeping in each interval.

Consider following command:
   ls4sweep 3:1,2:3,2:10,2:30,3:90,5:365 *.zip
This means:
- keep daily ZIP-archives in current directory for last 3 days
- older than 3 days - keep 2 archives with 3-days delta
- older than 9 days (3*1 + 2*3) - 2 archives with 10-days delta
- older than one month (3*1 + 2*3 + 2+10) - 2 archives with monthly delta
- older than 3 months - 3 archives with 90-days delta
- older than one year - yearly archive for five years
- display filenames of all remaining stuff

%name output can be directly passed to '| xargs -r /bin/rm -f' command.
When you create archives via cron(8), you can put cleanup via %name call
after creation.

%description -l ru_RU.KOI8-R
Утилита %name предназначена для удаления лишних архивных файлов.
Она проверяет время создания или изменения у указанных файлов
в соответствии с политикой прореживания и распечатывает имена тех из них,
которые могут быть удалены, чтобы не занимать лишнее место.

Политика прореживания состоит из списка, каждый элемент которого
включает в себя количество временнЫх отрезков и длину одного отрезка в днях.
Если в одном отрезке найдено несколько архивов, %name выведет их имена,
за исключением имени самого старого из них.

Например, ls4sweep '3:1,2:3,2:10,2:30,3:90,5:365' *.zip означает:
- оставить по одному архиву за последние три дня,
- старше трёх дней - два архива с трёхдневным интервалом,
- старше девяти дней (3*1 + 2*3) - два с десятидневным интервалом,
- старше месяца (3*1 + 2*3 + 2*10) - два с месячным интервалом,
- старше трёх месяцев - три архива с трёхмесячным интервалом,
- старше года - пять ежегодных архивов,
- имена всех прочих архивов вывести на консоль.

Созданный ею листинг может быть передан команде '| xargs -r /bin/rm -f'.
Если архивные копии автоматически создаются каждый день через cron(8),
рекомендуется добавить туда и удаление старых архивов с помощью %name.

%prep
%setup -qc

%build
%make

%install
%__mkdir_p %buildroot{%_bindir,%_man1dir}
%__cp -a %name     %buildroot%_bindir/%name
%__cp -a %name.man %buildroot%_man1dir/%name.1

%files
%_bindir/%name
%_man1dir/%name.1*
#rman1dir/%name.1.gz
%doc %name.html TODO LICENSE

%changelog

Full changelog you can see here

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin