logrotate 未在 postrotate 中执行自定义 shell 脚本

use*_*133 5 linux logrotate

我有以下 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
}
Run Code Online (Sandbox Code Playgroud)

/home/application/test.sh 当前内容如下(我也尝试在 shell 脚本中创建虚拟文件,但没有成功)

#!/bin/sh

echo "=============================================="
Run Code Online (Sandbox Code Playgroud)

当我运行 logrotate 时,所有文件都已成功旋转,但未执行 test.sh 脚本

Logrotate potput 看起来如下:

运行 postrotate 脚本 使用 arg /home/application/ /shared/log/运行脚本 .log:" echo "Hi....." /home/application/test.sh > /home/application/test_bash.log 2>&1 echo "由....." "

未创建 /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 
}
Run Code Online (Sandbox Code Playgroud)

为什么 logrotate 没有执行我的 shell 脚本?我在做什么不正确?

ada*_*ptr 0

Logrotate 没有附加神奇的 TTY;您希望将此输出写入哪里?

通常会运行一个脚本,将其输出重定向到专用 dlog,并避免在 stdout 上输出任何内容;您似乎混淆了上面的几个概念。

也许,如果我们知道您想用这个 logrotate 脚本实际什么,有人可以提供帮助。