scripts/pvlbackup-rsync-snapshot
changeset 31 e946c741c500
parent 30 29b60df79122
child 35 b6c0bdd6d8d4
equal deleted inserted replaced
30:29b60df79122 31:e946c741c500
   468             return
   468             return
   469 
   469 
   470         # configured
   470         # configured
   471         keep = interval.keep
   471         keep = interval.keep
   472 
   472 
   473         # clean?
   473         # items to clean?
   474         items = os.listdir(dir_path)
   474         items = os.listdir(dir_path)
   475         items.sort()
   475 
       
   476         # sort newest -> oldest
       
   477         items.sort(reverse=True)
   476 
   478 
   477         log.info("%s: Have %d / %d items", interval, len(items), keep)
   479         log.info("%s: Have %d / %d items", interval, len(items), keep)
   478         log.debug("%s: items: %s", interval, ' '.join(items))
   480         log.debug("%s: items: %s", interval, ' '.join(items))
   479 
   481 
   480         if len(items) > keep :
   482         if len(items) > keep :
   481             # clean out
   483             # select oldest ones
   482             clean = items[keep:]
   484             clean = items[keep:]
   483 
   485 
   484             log.info("%s: Cleaning out %d items", interval, len(clean))
   486             log.info("%s: Cleaning out %d items", interval, len(clean))
   485             log.debug("%s: cleaning out: %s", interval, ' '.join(clean))
   487             log.debug("%s: cleaning out: %s", interval, ' '.join(clean))
   486 
   488 
   487             for item in clean :
   489             for item in clean :
   488                 path = os.path.join(dir_path, item)
   490                 path = os.path.join(dir_path, item)
   489 
   491 
   490                 log.info("%s: Clean: %s", interval, path)
   492                 log.info("%s: Clean: %s", interval, path)
   491 
   493 
   492                 os.unlink(path)
   494                 if not options.dry_run :
   493 
   495                     log.debug("rmtree: %s", path)
       
   496                     os.unlink(path)
       
   497                 else :
       
   498                     log.debug("dryrun: %s", path)
   494 
   499 
   495     def clean_snapshots (self, options) :
   500     def clean_snapshots (self, options) :
   496         """
   501         """
   497             Clean out all snapshots for this target not linked to from within our root.
   502             Clean out all snapshots for this target not linked to from within our root.
   498 
   503