清理过期的旧文件
我们每隔一段时间就会打扫一次房间。 Puppet 的 tidy 资源可以帮助你清理已过期的旧文件,从而减少不必要的磁盘占用。 例如,如果你像 生成报告 一节描述的那样启用了 Puppet 的报告, 就会希望定期清除旧的报告文件。
操作步骤
添加如下代码到你的配置清单:
tidy { "/var/lib/puppet/reports": age => "1w", recurse => true, }
运行 Puppet:
# puppet agent -–test info: Retrieving plugin info: Caching catalog for cookbook. bitfieldconsulting.com notice: /Stage[main]//Node[cookbook]/Tidy[/var/lib/puppet/ reports]: Tidying File[/var/lib/puppet/reports/cookbook. bitfieldconsulting.com/201102241546.yaml] notice: /Stage[main]//Node[cookbook]/Tidy[/var/lib/puppet/ reports]: Tidying File[/var/lib/puppet/reports/cookbook. bitfieldconsulting.com/20110214727.yaml] ... info: Applying configuration version '1306149187' notice: /File[/var/lib/puppet/reports/cookbook.bitfieldconsulting. com/201102241546.yaml]/ensure: removed notice: /File[/var/lib/puppet/reports/cookbook.bitfieldconsulting. com/201102141727.yaml]/ensure: removed … notice: Finished catalog run in 1.48 seconds
工作原理
Puppet 会搜索指定路径下所有匹配 age 参数的文件:本例中的存活时间为 1w(一周)。 也可以搜索子目录(recurse => true)。
任何与你指定的标准匹配的文件都会被删除。
更多用法
你可以指定文件存活时间的单位,单位可以是:秒(s)、小时(h)、天(d)和周(w),下面是几个例子:
60s
180m
24h
30d
4w
你也可以指定文件的大小,当文件的尺寸大于你指定的尺寸后就会删除它,例如:
size => "100m",
这会删除所有大于 100 megabytes(m) 的文件。单位也可以是:kilobytes(k)或 bytes(b)。
值得注意的是,如果你同时指定了 age 和 size 参数,它们将被视为独立的标准 (即参数之间是 “或” 逻辑而不是 “与” 逻辑)。 例如,你对一个目录的文件指定了如下的参数,那么 Puppet 会删除所有超过一天的文件, 同时也会删除所有尺寸大于 512KB 的文件。
age => "1d", size => "512k",