相关疑难解决方法(0)

根据日期范围过滤日志文件条目

我的服务器具有异常高的CPU使用率,我可以看到Apache使用太多的内存.我有一种感觉,我是一个IP的DOS - 也许你可以帮我找到他?

我使用以下行,找到10个最"活跃"的IP:

cat access.log | awk '{print $1}' |sort  |uniq -c |sort -n |tail
Run Code Online (Sandbox Code Playgroud)

前5个IP对服务器的请求大约是"普通"用户的200倍.但是,我不知道这5个是非常频繁的访问者,还是他们正在攻击服务器.

是否有方法,将上述搜索指定为时间间隔,例如.最近两个小时或今天10-12之间?

干杯!

2011年10月23日更新 - 我需要的命令:

在过去X小时内获取条目[这里两小时]

awk -vDate=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date) print Date FS $4}' access.log
Run Code Online (Sandbox Code Playgroud)

在过去X小时内获取最活跃的IP [这里两小时]

awk -vDate=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date) print $1}' access.log | sort  |uniq -c |sort -n | tail
Run Code Online (Sandbox Code Playgroud)

在相对时间范围内获取条目

awk -vDate=`date -d'now-4 hours' +[%d/%b/%Y:%H:%M:%S` -vDate2=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date && …
Run Code Online (Sandbox Code Playgroud)

linux apache ubuntu awk

35
推荐指数
1
解决办法
5万
查看次数

如何在Perl中读取文件末尾的行?

我正在使用Perl脚本来读取CSV文件并进行一些计算.CSV文件只有两列,如下所示.

One Two
1.00 44.000
3.00 55.000
Run Code Online (Sandbox Code Playgroud)

现在这个CSV文件非常大,可以从10 MB到2GB.

目前我正在使用大小为700 MB的CSV文件.我试着在记事本中打开这个文件,excel但看起来好像没有软件打开它.

我想阅读可能是CSV文件中的最后1000行并查看值.我怎样才能做到这一点?我无法在记事本或任何其他程序中打开文件.

如果我编写一个Perl脚本,那么我需要处理完整的文件以转到文件末尾,然后读取最后1000行.

有没有更好的方法呢?我是Perl的新手,任何建议都将不胜感激.

我搜索过网络,有一些脚本可用,比如File :: Tail,但我不知道它们会在windows上运行吗?

perl large-files

7
推荐指数
5
解决办法
3万
查看次数

标签 统计

apache ×1

awk ×1

large-files ×1

linux ×1

perl ×1

ubuntu ×1