日志分析常用命令

日志分析常用命令

  • 查看文件内容

cat access.log

  • 分页显示文件

less access.log

使用/GET查找字符串GET

  • 显示文件尾

tail -n2 access.log

-f 可以让tail程序不退出

  • 内容排序

sort -n sortfile

-n是指定按数字顺序进行排序

sort -k 2 -t ’ ’ -n access.log

  • 字符统计

wc -l accesslog统计行数

wc -c access.log统计字节数

wc -L access.log统计最长行的长度

wc -waccess.log统计文本包含了多少个单词

  • 查看重复出现的行

uniq命令可以用来显示文件中行重复的次数,或者只显示仅仅出现一次的行,以及仅仅显示重复出现的行;并且uniq的屈从针对的只是连续的两行,因此他经常与sor结合使用。

sort uniqfile | uniq -c 通过sort排序后再通过uniq去重统计,-c参数用来在每一行的最前面显示该行出现的次数。

  • 字符串查找

grep XXX access.log

grep -c XXXX access.log -c参数可以显示查找到的行数

grep ‘G.*T’ access.log 支持正则表达式,比如查找G开头T结尾的字符串

  • 文件查找

find /home -name access.log

  • 归档文件

tar -cf XXX.tar file1 file2压缩

tar -xf XXX.tar解压

  • URL访问工具

curl www.baidu.com发起网页请求

curl -i www.baidu.com返回带header的文档

  • 查看请求访问量

cat access.log | cut -f1 -d " " | sort | uniq -c | sork -k1 -n -r| head -10 访问量排名前10的IP地址

cut f1 -d " "表示截取按“ ”分的第一列

cat access.log | cut -f4 -d " " | sort | uniq -c | sork -k1 -n -r| head -10访问量排名前10的url地址

  • 查看最耗时的页面

cat access.log | sort -k 2 -n -r | hrad -10查看最耗时的页面

  • 统计404请求的占比

export total_line=`wc -l access.log | cut -f1 -d " "` && export not_found_line=`awk ‘$6==‘404’{print $6}’ access.log | wc -l` && expr $not_found_line * 100 / $total_line

  • awk程序

awk使用的通用格式如下:
awk [option] ‘pattern {action}’ file
其中,optio为命令的选项,pattern为行匹配规则,action为执行的具体操作;如果没有pattern,则对所有行执行action,而如果没有action,则打印所有匹配的行;file为输入的文件。

awk ‘{print $1}’ access.log | hrad 10 打印文件指定的列

print命令用来格式化输出,支持转义字符,awk默认用空格将一行分割成多个列,可以使用-F来指定列的分割符。

awk ‘/google/{print $5, $6}’ access.log | head 10 使用/google/查找包含google的行,并打印第五,第六列。

awk ‘length($0)>40{print $3}’ access.log | head -10 查找length大于40的行,并且打印该行的第三列。$0表示当前的行,length($0)用来获取当前行的长度,然后通过print $3打印第三列。

你可能感兴趣的:(unix/linux)