我有以下 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 脚本?我在做什么不正确?
Logrotate 没有附加神奇的 TTY;您希望将此输出写入哪里?
通常会运行一个脚本,将其输出重定向到专用 dlog,并避免在 stdout 上输出任何内容;您似乎混淆了上面的几个概念。
也许,如果我们知道您想用这个 logrotate 脚本实际做什么,有人可以提供帮助。
归档时间: |
|
查看次数: |
12002 次 |
最近记录: |