想利用Logrotate实现对weblogic日志的每日备份,且不改变原日志文件名称和权限;
nohup.out是通过nohup命令生成的weblogic应用日志,配置完成后备份文件生成成功,但nohup.out前部出现大量十六进制为“00 00”的空字符,logrotate.conf中添加的配置内容如下:
/home/bea1/base_domain/bin/nohup.out{
daily
copytruncate
dateext
olddir /home/bea1/base_domain/bin
nocompress
rotate 100
}
不要用 nohup,因为它不知道 logrotate 已经把日志文件轮换了。不知道有没有现成的工具,没有的话自己拿 C 或者 Python 写一个也不难。其需要实现的功能如下:
- 在新进程组中运行指定的程序
- 捕获程序的输出,并将其写到指定的文件
- 在指定信号(比如
SIGHUP
)时关闭并重新打开日志文件
然后你的 logrotate 配置不需要 copytrucate
,可以压缩(同时开 delaycompress
),加句 postrotate
命令。