序
想必大家都遇到快照过多的提示
没有遇到的以后也会遇到的,先把这篇文章收藏吧 :)
安装
用ssh链接你的NAS,理论上ZFS都支持
克隆仓库
git clone https://github.com/bahamas10/zfs-prune-snapshots.git
进入目录
cd zfs-prune-snapshots
安装
make install
使用
案例
删除所有zpool(池)中超过一周的快照
zfs-prune-snapshots 1w
与上面相同,但增加了详细程度并且没有实际删除任何快照(试运行)
zfs-prune-snapshots -vn 1w
删除 tank1 和 tank2/backup 上超过 3 周的快照。请注意,此脚本将遍历所有 tank1 和 tank2/backup 以下的所有数据集
zfs-prune-snapshots 3w tank1 tank2/backup
删除zones池中以字符串“autosnap_”开头的超过一个月的快照
zfs-prune-snapshots -p 'autosnap_' 1M zones
删除tank池中以字符串“_frequent”结尾的超过两个月的快照
zfs-prune-snapshots -s '_frequent' 2M tank
删除zones池中不以字符串“autosnap_”开头的超过一个月的快照
zfs-prune-snapshots -i -p 'autosnap_' 1M zones
时间规范
表示快照必须存在超过多长时间才能考虑删除
s
seconds 秒m
minutes 分钟h
hours 小时d
days 天w
weeks 周M
months 月y
years 年
用法
usage: zfs-prune-snapshots [-hnliqRvV] [-p ] [-s ] [[dataset1] ...]
remove snapshots from one or more zpools that match given criteria
options
-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 <prefix> snapshot prefix string to match
-s <suffix> 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 exit