linux - 日志中产生大量十六进制为00的空字符
大家讲道理
大家讲道理 2017-04-17 11:28:27
[Linux讨论组]


用下面的脚本做每天的weblogic日志分割备份,不知道为什么会在日志前部生成很多十六进制为“00 00”的空字符(如截图)

nowdate=`date +%Y%m%d%H%M`
cp /home/bea1/base_domain/bin/nohup.out /home/bea1/base_domain/bin/nohup.out.$nowdate
echo "It's the system log for" $nowdate > /home/bea1/base_domain/bin/nohup.out
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
大家讲道理

根据你在问题评论的附加信息,原因很明显了:

你的日志打开时没有 O_APPEND 标志,导致每次写入是在上次写入的地方继续而不是到文件末尾追加(你用 echo 把文件截断了,因此写日志的程序的位置在文件末尾之后)。

你用过 logrotate 之后就会明白,日志文件切了之后是要通知写日志的程序的,一些程序的日志文件是需要延迟压缩的,这样它们才能打开新的日志文件来写入。

如果你改不了写日志的程序的话,可以做个命名管道来接收日志数据。

大部分人都不能正确处理日志切换的逻辑,所以还是交给 logrotate 做吧 ^_^

PHP中文网

/etc/logrotate.conf中追加以下内容,每日能生成日志备份,但仍有空字符
/home/bea1/basedomain/bin/nohup.out{
daily
copytruncate
dateext
olddir /home/bea1/basedomain/bin
nocompre
rotate 100
}

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号