Skip to main content

Snapshot you btrfs subvolumes and apply a retention policy

Project description

Take snapshots of your btrfs subvolumes and apply a retention policy in order to keep your snapshot directory somewhat clean and small.

The retention policy, defined bellow, is hardcoded for now but it should be enought for the average use case. I may adjust it, or provide a way to change it at runtime if needed.

  • Hourly snapshots are kept for 24 hours

  • Daily snapshots are kept for 4 weeks

  • Weekly snapshots are kept for 12 weeks

  • Monthly snapshots are kept for a year

  • yearly snapshots are kept for 10 years

Every subvolume that should be snapshoted must be given as argument to the script. For example if you want to snapshot every home directory created as subvolumes and your /etc and /srv directory you would do

btrfs-simple-snapshots /home/* /etc /srv

Once done, you will find a new subvolume named .snapshots inside the snapshoted subvolume with a name formated as %Y-%m-%d-%H%M%S

Installation

Install from pip using pip install btrfs-simple-snapshots. Then you can run it as root or with a user able to manage btrfs subvolumes. It is probably a good thing to run it automatically with a cron job. Depending on you need you may run it once per day (at 2 a.m.) to snapshot every home folder (created as subvolumes) with this kind of job definition.

0 2 * * * python -m btrfs_simple_snapshots /home/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

btrfs-simple-snapshots-0.1.1.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

btrfs_simple_snapshots-0.1.1-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file btrfs-simple-snapshots-0.1.1.tar.gz.

File metadata

File hashes

Hashes for btrfs-simple-snapshots-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b6c5ce9f80ec6f892aedd0a21b696eea714c4ff1c3b820a88271d7b42e35ec19
MD5 59a57ba1b943faf79ad2ac58c8dbf960
BLAKE2b-256 69e60ab670c628adcf571f47702ac887ed965bf78ed71dcf76e34f747716647c

See more details on using hashes here.

File details

Details for the file btrfs_simple_snapshots-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for btrfs_simple_snapshots-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 68b8243b14e231ae0561c0b04904745e4aa44e3a75cc185365655cba3c720c41
MD5 5c3794a1722143f1e752c55280f908e3
BLAKE2b-256 31290f0d5fb9b07e5c2930b150babe25b0567f6972b7a1c5210ef77fb046ea4b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page