利用Logrotate实现weblogic日志每日备份后出现大量空字符

想利用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.out

阅读 3.4k
评论
    1 个回答
    • 24.9k

    不要用 nohup,因为它不知道 logrotate 已经把日志文件轮换了。不知道有没有现成的工具,没有的话自己拿 C 或者 Python 写一个也不难。其需要实现的功能如下:

    • 新进程组中运行指定的程序
    • 捕获程序的输出,并将其写到指定的文件
    • 在指定信号(比如 SIGHUP)时关闭并重新打开日志文件

    然后你的 logrotate 配置不需要 copytrucate,可以压缩(同时开 delaycompress),加句 postrotate 命令。

      撰写回答

      登录后参与交流、获取后续更新提醒