加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – logrotate没有在postrotate中执行自定义shell脚本

发布时间:2020-12-14 02:45:10 所属栏目:Linux 来源:网络整理
导读:我有以下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 21 echo "By....
我有以下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脚本
使用arg /home/application//shared/log/.log运行脚本:“
回声“嗨……”
/home/application/test.shu0026gt; /home/application/test_bash.log 2>& 1
回声“By …..”

/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

如果这样可行,那么脚本应该易于调试.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读