Chef 检查日志文件大小
Chef checking log file size
我想用 chef 创建一个代码,它测试日志文件的大小,如果它超过 30mb
例如,它会在 cron 作业中删除它。
你能帮我解决一下吗?
这是我的解决方案,但这不是我想要的:
execute "echo '/srv/#{app['shortname']}/current/app/log/*.log {
rotate 1
missingok
copytruncate
sharedscripts
postrotate
/bin/rm -rf /srv/#{app['shortname']}/current/app/log/*.log*
endscript
}' >> /etc/logrotate.d/#{app['name']}-app-log-rotation" do
ignore_failure true
end
你可以试试
file '/tmp/y.txt' do
only_if { ::File.size('/tmp/y.txt').to_f / 1024000 > 30 }
action :delete
end
您始终可以使用 shell 脚本创建文件以删除文件并通过 chef cron 资源调用该文件
file '/tmp/foo.sh' do
content "if (wc -c < /tmp/y.txt) > 3072000; then rm -f /tmp/y.txt; fi"
mode 755
end
cron 'name_of_cron_entry' do
minute '3'
command 'sh -x /tmp/foo.sh > /tmp/backup 2>&1'
end
这将使用该脚本为您创建一个 cron 条目。
我想用 chef 创建一个代码,它测试日志文件的大小,如果它超过 30mb
例如,它会在 cron 作业中删除它。
你能帮我解决一下吗?
这是我的解决方案,但这不是我想要的:
execute "echo '/srv/#{app['shortname']}/current/app/log/*.log {
rotate 1
missingok
copytruncate
sharedscripts
postrotate
/bin/rm -rf /srv/#{app['shortname']}/current/app/log/*.log*
endscript
}' >> /etc/logrotate.d/#{app['name']}-app-log-rotation" do
ignore_failure true
end
你可以试试
file '/tmp/y.txt' do
only_if { ::File.size('/tmp/y.txt').to_f / 1024000 > 30 }
action :delete
end
您始终可以使用 shell 脚本创建文件以删除文件并通过 chef cron 资源调用该文件
file '/tmp/foo.sh' do
content "if (wc -c < /tmp/y.txt) > 3072000; then rm -f /tmp/y.txt; fi"
mode 755
end
cron 'name_of_cron_entry' do
minute '3'
command 'sh -x /tmp/foo.sh > /tmp/backup 2>&1'
end
这将使用该脚本为您创建一个 cron 条目。