Tool to cleanup backup directory with daily, weekly and monthly backups
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Сергей Морозов 7e7d1146c7 Fix spelling 7 months ago
tests Code style changes 10 months ago
LICENSE Initial commit 10 months ago Fix spelling 7 months ago Fix spelling 7 months ago


Tool to cleanup backup directory with daily, weekly and monthly backups. This tool removes everything in the specified directory (not recursively by default) except files, containing timestamps in the filename that can identified by this tool as fresh backups.

By default, this tool keeps last 7 daily backups, 4 weekly backups (4 last monday backups) and 3 monthly backups (1st day of last 3 months). You can redefine this by command line parameters.

This tool expects timestamps like this: 20220531 (May 31, 2022), but of course, you can redefine this.

usage: [-h] [-d N] [-w N] [-m N] [-f] [-r] [-t FORMAT] PATH

Cleanup old backups

positional arguments:
  PATH                  directory path

optional arguments:
  -h, --help            show this help message and exit
  -d N, --daily N       keep N daily backups, default: 7
  -w N, --weekly N      keep N weekly backups, default: 4
  -m N, --monthly N     keep N monthly backups, default: 3
  --day-of-week N       day of week for weekly backups, 0 for monday, 6 for sunday, default: 0
  --day-of-month N      day of month for monthly backups, default: 1
  -f, --force           suppress remove confirmation
  -r, --recursive       remove files recursively
  -t FORMAT, --timestamp-format FORMAT
                        format of timestamp, default: %Y%m%d

For a complete timestamp format description, see the python strftime() documentation: