想利用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
}/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 命令。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。