我的任务是编写一个shell脚本来浏览Linux和Solaris服务器上许多目录中的数百个日志文件.一些日志以多种格式压缩,一些日志的大小为几GB.我担心grep使用服务器上的大量资源,并可能通过耗尽内存来关闭机器上运行的Web服务器(如果可能发生这种情况).
我应该解压缩文件,grep它们然后再次压缩它们或使用zgrep(或等效的)在压缩时搜索它们吗?使用一种方法优于另一种方法是否有优势资源?
此外,是否有一种简单的方法可以将命令的内存使用量限制为当前可用的百分比?
如果有人能够解释在运行这些命令时内存使用情况如何,那么它会有很多帮助.
解决方法:
grep内存使用量是不变的;它不随文件大小†缩放.它不需要将整个文件保留在内存中,只需将其搜索的区域保留在内存中.
减压是类似的.内存使用量与字典大小成正比,而不是与文件总大小成正比.字典大小无需担心:最多几兆字节.
我不担心一些简单的grep / zgrep / zcat | grep搜索删除其他进程.这个东西是Linux的面包和黄油.
†但要注意扫描files with incredibly long lines.它的内存使用量随线长而变化.您可以使用grep -I跳过二进制文件,这通常就足够了.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。