Loading... # 序 想必大家都遇到快照过多的提示  没有遇到的以后也会遇到的,先把这篇文章收藏吧 :) # 安装 用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 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 2 如果觉得我的文章对你有用,请随意赞赏