Linux shell 统计访问日志

                                                                            shell 统计访问日志

    最近遇到一个需求,统计web 应用服务器日志里每个ip的访问次数。

    数据格式

ip time path
ip time path
ip time path

    还是想了很久终于写了出来

#!/bin/bash
#this is a ip count
gawk '{print $1}' ipdata| sort -u| while read line
do
count=`grep -c $line ipdata`
echo $line $count
done

    解释

gawk '{print $1}' 只取第一列

| sort -u 管道传过来去重

| while read line 管道传过来读文件

count=`grep -c $line ipdata` grep ip的查询数量

echo $line $count 输出结果

    输出结果

[root@CentOS bin]# countip1
127.0.0.1 2
127.0.0.2 1
127.0.0.3 1

    还没有对ip 数量的结果进行排序,如果需要的话,就只能进行文件重定向,再排一次序才行。

你可能感兴趣的:(Linux shell 统计访问日志)