当前位置:  开发笔记 > 编程语言 > 正文

如何扫描多个日志文件以查找哪些日志文件中包含特定的IP地址?

如何解决《如何扫描多个日志文件以查找哪些日志文件中包含特定的IP地址?》经验,为你挑选了2个好方法。

最近有一些攻击者在我的服务器上尝试恶意攻击,所以我决定稍微"跟踪"它们,即使我知道它们不会走得太远.

现在,我有一个包含服务器日志的整个目录,我需要一种方法来搜索目录中的每个文件,并在找到字符串时返回文件名.所以我想,自己用于文本和文件操作的语言比Perl更好?所以我的朋友正在帮助我使用脚本来扫描某个IP的所有文件,并返回包含IP的文件名,这样我就不必手动搜索每个日志的攻击者了.(我有几百个)

#!/usr/bin/perl

$dir = ".";

opendir(DIR, "$dir");
@files = grep(/\.*$/,readdir(DIR));
closedir(DIR);

foreach $file(@files) {
    open FILE, "$file" or die "Unable to open files";

    while() {
        print if /12.211.23.200/;
    }

}

虽然它给我目录读取错误.非常感谢任何帮助.

编辑:代码编辑,仍然说权限被拒绝无法打开第10行的目录.如果你质疑目录更改为".",我将从日志目录中运行脚本.

麦克风.



1> A. Rex..:

你能用grep吗?



2> Osama Al-Maa..:

要获得IP的所有行,我会直接使用grep,不需要显示文件列表,这是一个简单的命令:

grep 12\.211\.23\.200 *

我喜欢将它传输到另一个文件,然后在编辑器中打开该文件...

如果你坚持想要文件名,那也很容易

grep -l 12\.211\.23\.200 *

grep可以在所有Unix // Linux上使用GNU工具,或在Windows上使用众多实现之一(unxutils,cygwin,...等).

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有