Шеф-повар проверяет размер файла журнала - PullRequest
0 голосов
/ 29 января 2019

Я хочу создать код с помощью 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

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Вы всегда можете создать файл с помощью сценария оболочки, чтобы удалить этот файл и вызвать его через ресурс 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 с этим сценарием.

0 голосов
/ 30 января 2019

Вы можете попробовать что-то вроде

file '/tmp/y.txt' do
    only_if { ::File.size('/tmp/y.txt').to_f / 1024000 > 30 }
    action :delete
end
...