linux – logrotate没有在postrotate中执行自定义shell脚本
我有以下logrotate配置文件
/home/application/*/shared/log/*.log { daily rotate 10 missingok nocompress notifempty copytruncate sharedscripts postrotate echo "Hi....." /home/application/test.sh > /home/application/test_bash.log 2>&1 echo "By....." endscript } /home/application/test.sh目前内容如下(我尝试在shell脚本中创建虚拟文件,但没有成功) #!/bin/sh echo "==============================================" 当我运行logrotate时,所有文件都成功轮换,但不执行test.sh脚本 Logrotate potput看起来如下: 运行postrotate脚本 /home/application/test_bash.log日志文件未创建. 我甚至尝试过简单的例子 /home/application/*/shared/log/*.log { daily rotate 10 missingok nocompress notifempty copytruncate sharedscripts postrotate mkdir /home/application/demo_v2/shared/log/arch endscript } 为什么logrotate没有执行我的shell脚本?我做错了什么? 解决方法
正如之前所说的“echo”命令会失败,因为logrotate没有TTY,所以你可能会尝试……
echo "Hi....." > /home/application/test_bash.log /home/application/test.sh >> /home/application/test_bash.log 2>&1 echo "By....." >> > /home/application/test_bash.log 目前还不清楚如果你在没有TTY的情况下尝试回声,logrotate可能会做什么. -logrotate -dvf的输出似乎表明你的脚本已经运行. 首先尝试一些简单的事情 – echo foo> /home/application/test_bash.log 2>& 1 如果这样可行,那么脚本应该易于调试. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |