在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
学会用shell分析日志只要一上午!!! 很多地方分享了日志分析的shell脚本,但是基本没说每个命令符的具体含义,学习成本还是很高,在这里总结下,方便大家快速入门。 1、在Windows下的用户要使用shell命令符的话请先安装cygwin,安装方法自行Google(搜技术问题请使用google,百度搜不到活该) 2、下面粗略介绍下SEO日志分析常用的命令符用法,需要详细了解每个命令符请使用Google。 less 文件名 查看文件内容 按“q” 退出 cat 文件名 打开文件,可以多次打开几个文件 | cat 1.log 2.log |cat *.cat egrep 属于grep的升级版,在正则这一块的支持更完善,使用正则的时候建议使用egrep head -2 文件名 显示2行 wc -参数 文件名 统计文本大小,字符多少,行数 sort – 参数 文件名 对文件进行排序 uniq -参数 文件名 对文件去重,去重前需要使用排序 sort split -参数 文件名 对文件进行切割 | 管道,把上一条命令的结果传输给下一条命令 “>” 和“>> ” 重定向写入文件中 “>”相当于“w”清空并写入 “>>”相当于“a” 追加进文件 awk -F ‘分割符' Pattern {action} 文件名 使用指定的字符对每一行数据进行分段,默认是空格(网站日志就是空格分开) bash shell.sh 运行shell.sh脚本 dos2unix xxoo.sh 将“\r\n”转换成“\n” Windows——>linux (由于Windows和Linux下的换行符不同,所以我们在Windows下面下的代码需要使用dos2unix 转换成Linux下的换行符,否则运行shell脚本会报错) unix2dos xxoo.sh 将“\n”转换成“\r\n” linux——>Windows 3、一些简单的命令符介绍到这里,需要了解shell,建议大家查看相关的书籍. 下面我们开始使用shell分析日志 1、切割百度的抓取数据(将文件切割出来对专门的爬虫数据进行处理能提高效率) 复制代码 代码如下: cat log.log |grep -i ‘baiduspider' >baidu.log 2、网站状态码个数查询 复制代码 代码如下: awk ‘{print $9}' baidu.log|sort|uniq -c|sort -nr 3、百度总抓取量 复制代码 代码如下: wc -l baidu.log 4、百度不重复抓取量 复制代码 代码如下: awk ‘{print $7}' baidu.log|sort|uniq|wc -l 5、百度平均每次抓取的数据大小(结果是KB) 复制代码 代码如下: awk ‘{print $10}' baidu.log|awk ‘BEGIN{a=0}{a+=$1}END{ print a/NR/1024}' 6、首页抓取量 复制代码 代码如下: awk ‘$7~/\.com\/$/' baidu.log|wc -l 7、某目录抓取量 复制代码 代码如下: grep ‘/news/' baidu.log|wc -l 8、抓取最多的10个页面 复制代码 代码如下: awk ‘{print $7}' baidu.log|sort|uniq -c|sort -nr|head -10 9、找出抓取的404错误页面 复制代码 代码如下: awk ‘$9~ /^404$/ {print $7}' baidu.log|sort|uniq|sort -nr 10、找出抓取了多少js文件和文件抓取的次数 复制代码 代码如下: awk ‘$7~ /.js$/ {print $7}' baidu.log|sort|uniq -c |sort -nr |
请发表评论