我的服务器具有异常高的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)