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

ShelleyWang
  • 9

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

回复
阅读 4.4k
1 个回答

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏