Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bahamas10/zfs-prune-snapshots
Remove snapshots from one or more zpools that match given criteria
https://github.com/bahamas10/zfs-prune-snapshots
Last synced: 5 days ago
JSON representation
Remove snapshots from one or more zpools that match given criteria
- Host: GitHub
- URL: https://github.com/bahamas10/zfs-prune-snapshots
- Owner: bahamas10
- License: mit
- Created: 2015-11-22T04:24:57.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-04-26T16:10:30.000Z (over 1 year ago)
- Last Synced: 2024-04-14T14:21:41.853Z (9 months ago)
- Language: Shell
- Homepage: http://daveeddy.com/2015/12/05/automatic-zfs-snapshots-and-backups/
- Size: 53.7 KB
- Stars: 249
- Watchers: 18
- Forks: 47
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - bahamas10/zfs-prune-snapshots - Remove snapshots from one or more zpools that match given criteria (others)
README
ZFS Prune Snapshots
===================Remove snapshots from one or more zpools that match given criteria
Examples
--------Remove snapshots older than a week across all zpools
zfs-prune-snapshots 1w
Same as above, but with increased verbosity and without
actually deleting any snapshots (dry-run)zfs-prune-snapshots -vn 1w
Remove snapshots older than 3 weeks on tank1 and tank2/backup.
Note that this script will recurse through *all* of tank1 and
*all* datasets below tank2/backupzfs-prune-snapshots 3w tank1 tank2/backup
Remove snapshots older than a month on the zones pool that start
with the string "autosnap_"zfs-prune-snapshots -p 'autosnap_' 1M zones
Remove snapshots older than two months on the tank pool that end
with the string "_frequent"zfs-prune-snapshots -s '_frequent' 2M tank
Remove snapshots older than a month on the zones pool that do not
start with the string "autosnap_"zfs-prune-snapshots -i -p 'autosnap_' 1M zones
Timespec
--------The first argument denotes how old a snapshot must be for it to
be considered for deletion - possible specifiers are- `s` seconds
- `m` minutes
- `h` hours
- `d` days
- `w` weeks
- `M` months
- `y` yearsUsage
-----usage: zfs-prune-snapshots [-hnliqRvV] [-p ] [-s ]
remove snapshots from one or more zpools that match given criteria
examples
# zfs-prune-snapshots 1w
remove snapshots older than a week across all zpools# zfs-prune-snapshots -vn 1w
same as above, but with increased verbosity and without
actually deleting any snapshots (dry-run)# zfs-prune-snapshots 3w tank1 tank2/backup
remove snapshots older than 3 weeks on tank1 and tank2/backup.
note that this script will recurse through *all* of tank1 and
*all* datasets below tank2/backup# zfs-prune-snapshots -p 'autosnap_' 1M zones
remove snapshots older than a month on the zones pool that start
with the string "autosnap_"# zfs-prune-snapshots -s '_frequent' 2M tank
remove snapshots older than two months on the tank pool that end
with the string "_frequent"# zfs-prune-snapshots -i -p 'autosnap_' 1M zones
remove snapshots older than a month on the zones pool that do not
start with the string "autosnap_"timespec
the first argument denotes how old a snapshot must be for it to
be considered for deletion - possible specifiers ares seconds
m minutes
h hours
d days
w weeks
M months
y yearsoptions
-h print this message and exit
-n dry-run, don't actually delete snapshots
-l list only mode, just list matching snapshots names
without deleting (like dry-run mode with machine-parseable output)
-p snapshot prefix string to match
-s snapshot suffix string to match
-i invert matching of prefix and suffix
-q quiet, do not printout removed snapshots
-R recursively delete, pass '-R' directly to 'zfs destroy'
-v increase verbosity
-V print the version number and exitDevelopment Notes
-----------------### Style
[shellcheck](https://www.shellcheck.net/) is used to check bash style. Use
`make check` to run the style checker:$ make check
awk 'length($0) > 80 { exit(1); }' zfs-prune-snapshots
shellcheck zfs-prune-snapshotsBash style guide: https://www.daveeddy.com/bash/
### Manpage
Use `make man` to regenerate the manpage:
$ make man
md2man-roff man/zfs-prune-snapshots.md > man/zfs-prune-snapshots.1
$ ./man/zfs-prune-snapshots.1
Manpages are generated with [md2man](https://github.com/sunaku/md2man) which
requires `ruby-devel` to be installed. Once `ruby` is installed, `md2man` can
be installed locally with:$ gem install --user-install md2man
License
-------MIT License