想必大家都遇到快照过多的提示
图片

没有遇到的以后也会遇到的,先把这篇文章收藏吧 :)

安装

用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
最后修改:2022 年 05 月 17 日
感谢您的支持