我想在厨师巫婆中创建Cron他们验证日志的大小如果它> 30mb它将删除它,这是我的代码:
cron_d 'ganglia_tomcat_thread_max' do
hour '0'
minute '1'
command "rm - f /srv/node/current/app/log/simplesamlphp.log"
only_if { ::File.size('/srv/node/current/app/log/simplesamlphp.log').to_f / 1024000 > 30 }
end
请帮帮我
欢迎来到Stackoverflow!
我建议你使用像“logrotate”这样的现有工具。 There is a chef cookbook available to manage logrotate。
请注意,厨师中的“cron”管理独立于厨师运行的系统cron服务。您必须在“命令”中进行文件大小检查。使用cron_d
资源as documented here也更好。
在创建cron_d
资源的方式中,只有当日志文件的大小超过30mb时才会添加cron任务。在所有其他情况下,将不会创建cron_d
。
你可以检查ruby代码
File.size('file').to_f / 2**20
获取文件大小以兆字节为单位 - 结果略有不同我认为更正确。
因此,您可以根据具体情况选择2种解决方案
cron_d
资源以删除现有的cron并定期配置节点du -k file.txt | cut -f1
将以字节为单位返回文件的大小
对我来说,也正确的方法是使用logrotate服务和厨师食谱。