在Chef中配置logrotate

时间:2017-12-03 19:50:29

标签: chef

我正在将厨师超市的logrotate食谱添加到现有的食谱中。我想logrotate_app生成一个包含' postrotate'脚本。

这就是我的食谱中的内容:

logrotate_app 'myapp' do
  path '/var/log/glusterfs/*.log'
  options ['missingok', 'compress', 'delaycompress', 'notifempty','postrotate']
  frequency 'daily'
  rotate 7 
  create '644 root adm' 
end 

这是我当前配置的结果:

"/var/log/myapp/*.log" { 
  daily 
  create 644 root adm 
  rotate 7 
  missingok 
  compress 
  delaycompress 
  notifempty 
  postrotate 
} 

我希望最终输出是这样的:

/var/log/myapp/*.log { 
  sharedscripts 
  daily
  rotate 7 
  missingok 
  compress 
  delaycompress 
  notifempty 
  postrotate 
  /usr/bin/killall -HUP myapp > /dev/null 2>&1 || true 
  /usr/bin/killall -HUP myapp > /dev/null 2>&1 || true 
  endscript 
} 

在" postrotate"之后立即在食谱中添加两行的语法是什么? ?

/usr/bin/killall -HUP MyApp > /dev/null 2>&1 || true
/usr/bin/killall -HUP MyApp > /dev/null 2>&1 || true 

2 个答案:

答案 0 :(得分:0)

试试这个:

logrotate_app 'myapp' do
  path '/var/log/glusterfs/*.log'
  options ['missingok', 'compress', 'delaycompress', 'notifempty', 'postrotate']
  postrotate <<-EOF
    /usr/bin/killall -HUP myapp > /dev/null 2>&1 || true 
    /usr/bin/killall -HUP myapp > /dev/null 2>&1 || true 
  EOF
  frequency 'daily'
  rotate 7 
  create '644 root adm' 
end 

当前可能的&#34;脚本列表&#34;属性可在此处获取:https://github.com/stevendanna/logrotate/blob/1f0132fe74e68ff86a087521b6968aa77155c97d/libraries/logrotate_config.rb#L33

但是,我不明白为什么要将HUP信号发送到同一个进程两次。

答案 1 :(得分:0)

有几个使用postrotate指令的示例here,因此您可以尝试添加以下内容:

postrotate [
'/usr/bin/killall -HUP myapp > /dev/null 2>&1 || true',
'/usr/bin/killall -HUP myapp > /dev/null 2>&1 || true', 
]