backupy icon indicating copy to clipboard operation
backupy copied to clipboard

Clean up Trash and Archives

Open Forever-A-Hermit opened this issue 4 years ago • 3 comments

Would it be possible to clear the trash and archive folders after a specified number of days to keep them from growing indefinitely? I still like having the safety net that the trash and archives provide, so I'd rather not enable the "--noarchive" option.

Forever-A-Hermit avatar Oct 28 '21 17:10 Forever-A-Hermit

I have thought about this before, and would rather not add this feature directly to backupy for a few reasons:

  1. I currently don't have the time to test and maintain this feature with the same level of reliability you can expect from the rest of backupy
  2. From a user design standpoint I am trying to keep it simple and minimise the number of features and options
  3. There are other tools that can achieve this such as maid or you can write your own

Here's a short example for your use case that you can keep in and run from the .backupy folder (I have not tested this)

#!/usr/bin/env python3
from datetime import datetime
from os import listdir, path
from shutil import rmtree
from time import time

def clean(base_path):
    now = datetime.fromtimestamp(time())
    for dir in listdir(base_path):
        if (now - datetime.strptime(dir, "%y%m%d-%H%M")).days > 7:
            rmtree(path.join(base_path, dir))

clean("Archive")
clean("Trash")

elesiuta avatar Oct 29 '21 15:10 elesiuta

I'll leave this open and may get to it someday, and if I do, I would also add the option to keep the X most recent versions of each file, and keep Y versions per week, month, year, etc.

elesiuta avatar Oct 29 '21 18:10 elesiuta

I respect the preference to not include it for the reasons you've outlined. Thank you for providing this small Python script as a work-around. With a modification or two on my end, this will fit my use case perfectly.

Forever-A-Hermit avatar Oct 30 '21 00:10 Forever-A-Hermit