1.按照前面的URL统计PV,UV
统计日志:test.log
内容如下:
/a/click_1/stat.do token=11110
/a/click_2/stat.do token=11111
/a/click_1/stat.do token=11110
/a/click_2/stat.do token=11112
/a/click_2/stat.do token=11112
/a/click_3/stat.do token=12100
/a/click_3/stat.do token=12110
统计需求:按照前面的URL统计PV,UV
cat test.log |awk '{a[$1"#"$2]++}END{for(i in a){split(i,arr,"#"); print arr[1] "\t" a[i]; } }'|awk '{url_uv[$1]++; url_pv[$1]+=$2 }END {for(url in url_uv){ print "URL:" url "\tUV:" url_uv[url] "\t PV:" url_pv[url]} }'
结果:
URL:/a/click_1/stat.do UV:1 PV:2
URL:/a/click_2/stat.do UV:2 PV:3
URL:/a/click_3/stat.do UV:2 PV:2
2.查看apache的进程数
ps -aux | grep httpd | wc -l
3.分析日志查看当天的ip连接数
cat default-access_log | grep "10/Dec/2010" | awk '{print $2}' | sort | uniq -c | sort -nr
4.查看指定的ip在当天究竟访问了什么url
cat default-access_log | grep "10/Dec/2010" | grep “218.19.140.242″ | awk ‘{print $7}’ | sort | uniq -c | sort -nr
5.查看当天访问排行前10的url
cat default-access_log | grep "10/Dec/2010" | awk '{print $7}' | sort | uniq -c | sort -nr | head -n 10
6.看到指定的ip究竟干了什么
cat default-access_log | grep 218.19.140.242 | awk '{print $1″\t”$8}' | sort | uniq -c | sort -nr | less
7.查看访问次数最多的几个分钟(找到热点)
awk '{print $4}' default-access_log |cut -c 14-18|sort|uniq -c|sort -nr|head
8.同时查看多个文件的日志
tail -f chat_error.log -f chat_biz.log -f chat_info.log
9.查看进程的线程数
ps hH p<pid>|wc-l 或 cat /proc//status
10.压缩文件
tar -zcvf /tmp/etc.tar.gz /etc
11.找出n天前修改的文件并删除
nohup find . -mtime +n -name *.txt -print | xargs rm -f &
12.找出小于2k的文件并删除
nohup find . -type f -size -2k -name 2015-11-11.txt | xargs rm -rf
13.查看占用cpu最高的进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
解释:
ps aux|head -1:显示标题
grep -v PID :不包含PID的行
sort -rn -k +3 -r r表示是结果倒序排列 n为以数值大小排序 -k +3则是针对第3列的内容进行排序 第三列表示cpu
14.查看占用内存最高的进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
15.通过进程号查询占用的端口
netstat -anp | grep pid
16.查看进程使用了多少内存
cat /proc//status
17.查看内存使用情况
free
18. 查看主机之间发送的信息
tcpdump -n -X -c 10 dst host 172.22.4.170 and port 3306
-n:不显示主机名,只显示 ip
-c 抓包个数
-e:输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。
-q:快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。
-X:输出包的头部数据,会以16进制和ASCII两种方式同时输出。
-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
-v:当分析和打印的时候,产生详细的输出。
-vv:产生比-v更详细的输出。
-vvv:产生比-vv更详细的输出。