请看图片,我试图打开(使用 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