[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Удаление старых инкрементов rdiff-backup на большом архиве



On Wed, Mar 20, 2013 at 03:30:20PM +0300, Andrey Tataranovich wrote:
> 	Пробовал смотреть исходники rdiff-backup в районе remove-older-than
> 
> # /usr/share/pyshared/rdiff_backup/manage.py
> 
> def delete_earlier_than_local(baserp, time):
>         """Like delete_earlier_than, but run on local connection for speed"""
>         assert baserp.conn is Globals.local_connection
>         def yield_files(rp):
>                 if rp.isdir():
>                         for filename in rp.listdir():
>                                 for sub_rp in yield_files(rp.append(filename)):
>                                         yield sub_rp
>                 yield rp
> 
>         for rp in yield_files(baserp):
>                 if ((rp.isincfile() and rp.getinctime() < time) or
>                         (rp.isdir() and not rp.listdir())):
>                         Log("Deleting increment file %s" % rp.path, 5)
>                         rp.delete()
> 
> 	Насколько я знаю python, оно проходит по инкрементам и строит список
> всех элементов в архиве, затем сравнивает метку времени и удаляет устаревшее.
Никто тут списков не строит, yield_files это итератор.

-- 
WBR, wRAR

Attachment: signature.asc
Description: Digital signature


Reply to: