从服务器控制台日志中删除一些垃圾字符

从服务器控制台日志中删除一些垃圾字符

请看图片,我试图打开(使用 vi 编辑器)我的服务器控制台日志文件(大约 100MB),打开它需要两分钟以上的时间,因为里面有太多特殊字符。删除第一行(意味着输入“dd”)后,我可以轻松查看文件,而且文件大小也减小了很多。我的服务器操作系统是 RHEL 5.4,jboss 正在其中运行。

请帮助我避免此类垃圾字符出现在我的服务器控制台日志文件中,这有助于我节省服务器中宝贵的空间。

替代文本

答案1

最简单的方法是过滤不可打印的字符,就像这样

cat console.log |perl -pe 's/[^[:print:]\n]//gi' > cleared_log.file

要不就

perl -pe 's/[^[:print:]\n]//gi' console.log

但最好的办法是弄清楚为什么日志文件中有这么多垃圾

答案2

在 VI 中,^@ 代表 NULL(ASCII 值 0)字符。通过 Google 搜索似乎表明这是 JBoss 和 Logrotate 的一个已知问题。查看此网站以获取一些见解和建议的修复方法:

http://efreedom.com/Question/2-71341/JBoss-Logrotate-Create-Log-Files-Full-NUL-Characters

相关内容