日志大体长的样子
以下几种业务场景,不是绝对,但是经常使用
- 统计IP访问量(独立ip访问数量)
# 指令
cat /var/log/uwsgi_beaas_test.log | awk '{print $1}'|sort -n |uniq| wc -l
# 参数说明
cat 文本打印指定文件内容
awk 取得第一列
sort -n正序排序,sort -rn倒叙排序
uniq去重
wc -l 做统计
2. 统计某个时间段的访问总次数
# 指令
cat /var/log/uwsgi_beaas_test.log | grep -E '16/Feb/2019:1[2-9]|16/Feb/2019:2[0-3]'| wc -l
1242
# 参数说明
cat 文本打印指定文件内容
grep -E 匹配正则/时间段拿正则表示
3. 查看访问最频繁的前5个IP,并列出访问次数
# 指令
cat /var/log/uwsgi_beaas_test.log | awk '{print $1}'|sort -n|uniq -c| sort -rn| head -5
# 参数说明
cat 文本打印指定文件内容
awk 取得第一列
sort -n|uniq -c 首先做去重操作
sort -rn 倒序排序
head -5 取前5个
4. 查看访问次数大于X(这里假设是100)的IP,并列出访问次数
# 指令
cat /var/log/uwsgi_beaas_test.log | awk '{print $1}'|sort -n|uniq -c| sort -rn| awk '{if($1 > 100) print $0}'
# 参数说明
cat 文本打印指定文件内容
awk 取得第一列
sort -n|uniq -c 首先做去重操作
再来一个awk 对前一个输出结果进行判断并输出
5. 查询出访问最频繁的URL
# 指令
cat /var/log/uwsgi_beaas_test.log | awk '{print $7}'|awk -F'?' '{print $1}'|sort -n|uniq -c|sort -rn|head -n /user/info
# 参数说明
cat 文本打印指定文件内容
awk 取得第一列
awk -F'?' '{print $1}' 按照指定的分隔符分割
sort -n|uniq -c 首先做去重操作
sort -rn 倒序排序
head -n显示文件的前n行