<commit_before>snazzer
=======

btrfs snapshotting and backup system offering snapshot measurement, transport
and pruning.

* `snazzer-prune-candidates`: [![Build Status](https://secure.travis-ci.org/csirac2/snazzer.png)](https://travis-ci.org/csirac2/snazzer)

Features
--------

* Minimal dependencies (portable-ish sh script - a painful learning
exercise...)
* Maintains snapshots for each subvol under
  `subvol/.snapshotz/YYYY-MM-DDTHHMMSS+hhmm` i.e. a valid isodate
* Operates on specific subvols, all subvols on a filesystem, or all
  subvols on all mounted filesystems, Eg: `snazzer --all`
* Operations include snapshotting (default), `--measure` (sha512sum &
  PGP signatures of snapshots), `--prune` (deleting snapshots except for
  those required to meet configured number of
  hourlies/daylies/monthlies/yearlies to keep)
* `snazzer-receive` operates on remote hosts for specific subvols, all
  subvols on a filesystem, or all subvols on all mounted filesystems,
  Eg: `snazzer-receive somehost --all` (or `snazzer-receive -- --all` to
  receive local paths without ssh in the middle)
  
Getting started
---------------

### Documentation

The full documentation for each part of snazzer is available as follows:

    snazzer --man                  # Create, prune and measure snapshots
    snazzer-receive --man          # Receive remote snapshots over ssh
    
Supporting scripts are also fully documented:
<commit_msg>add shellcheck mention<commit_after>snazzer
=======

btrfs snapshotting and backup system offering snapshot measurement, transport
and pruning.

* `snazzer-prune-candidates`: [![Build Status](https://secure.travis-ci.org/csirac2/snazzer.png)](https://travis-ci.org/csirac2/snazzer)

Features
--------

* Minimal dependencies (portable-ish sh script, mostly checked with http://shellcheck.nett)
* Maintains snapshots for each subvol under
  `subvol/.snapshotz/YYYY-MM-DDTHHMMSS+hhmm` i.e. a valid isodate
* Operates on specific subvols, all subvols on a filesystem, or all
  subvols on all mounted filesystems, Eg: `snazzer --all`
* Operations include snapshotting (default), `--measure` (sha512sum &
  PGP signatures of snapshots), `--prune` (deleting snapshots except for
  those required to meet configured number of
  hourlies/daylies/monthlies/yearlies to keep)
* `snazzer-receive` operates on remote hosts for specific subvols, all
  subvols on a filesystem, or all subvols on all mounted filesystems,
  Eg: `snazzer-receive somehost --all` (or `snazzer-receive -- --all` to
  receive local paths without ssh in the middle)
* Automated regression testing (TODO: snazzer-receive)
  
Getting started
---------------

### Documentation

The full documentation for each part of snazzer is available as follows:

    snazzer --man                  # Create, prune and measure snapshots
    snazzer-receive --man          # Receive remote snapshots over ssh
    
Supporting scripts are also fully documented:

{'fraction_non_alphanumeric': 0.10404624277456648, 'fraction_numerical': 0.0034002040122407345, 'mean_word_length': 3.7451612903225806, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '697135', 'n_tokens_mistral': 915, 'n_tokens_neox': 871, 'n_words': 309}