归档2015年在br做运维时常用的命令,主要梳理出日志的过滤操作。

对于日志文本的处理,常用的还是sed、awk,具体如下:

统计ip访问量:

cat nginx.log |awk '{print $2,$11}' | awk ' {++S[$1]; V[$1]+=$2 } END {for(a in S) print a, S[a], V[a]}' |sort -nrk2 |head
222.93.28.28 132171 15367772663
115.168.84.186 130746 29782262441
114.221.180.61 126604 22408007956
61.187.159.136 108039 4166438896

通过sed正则匹配需要的域

head -n 20 nginx.log |sed 's/\([^ ]*\) .*\(imei\=[^&]*\).*/\1,\2/'
过虑前:
125.126.250.49 - - [09/Jul/2015:00:00:01 +0800] "GET /client/spiritscreen/recommend?version=12.150417&imei=51B5ECC4A771CEF1D3BA81B34F4416C0&channelId=jltop_m_scb07&p=com.GreanMaster.pixelmonmcpecraftrun2 HTTP/1.0" 200 0.032 938 "-" "-" "125.126.250.49" "-" "-"
过虑后:
125.126.250.49,imei=51B5ECC4A771CEF1D3BA81B34F4416C0
## 其中:
[^ ]:表示匹配非空
\1,\2:表示取出前面括号内的对应内容,并逗号隔开

统计tcp连接情况

[root@zabbix ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
TIME_WAIT 68
SYN_SENT 3
ESTABLISHED 72
LAST_ACK 3

nginx变量的统计:$body_bytes_sent

cat down.nginx.log |grep 23/May/2015 |awk '{print $11}' |awk '{sum += $1} END {print "Sum = ", sum}'
Sum = 2695161432870

排序过虑下载频率

cat down.nginx.log |awk '{print $8}' |sed 's/_t[0-9]\{11\}//' |sed 's/?.*$//' |sed 's/^\/.*[ ]//' |sort |uniq -c |sort -n > sort_0401

nginx status

wget -O- -q -t 3 -T 3 --no-check-certificate http://172.16.114.54:80/status

nc使用

nc -z -w 1 -u 172.16.114.22 123    #加-u可测试udp
Connection to 172.16.114.22 123 port [udp/ntp] succeeded!

远程ssh机箱上的reset健重启

## 有时候linux由于硬盘或者其它原因,某个进程挂住怎么也杀不死,输入reboot也无法重启
## 这时候,一般只能按机箱上的reset健来重启了,下面两行命令可以搞定:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger

小时的请求量进行统计

cat nginx.log |sed 's/.*\[\(.*2015:[^:]*\).*].*/\1/' | sort |uniq -c
10762 14/Feb/2015:14
1876 14/Feb/2015:15
502 14/Feb/2015:19
378 14/Feb/2015:20

rsync的几种操作

rsync -avz 172.16.190.56::data /data0/wwwroot/data/ --files-from=/data0/logs/sort_miss_04292015 --progress
rsync -avz 172.16.11.11::data/xbz1.apk /var/log/ --progress
rsync 172.16.17.11::d0_data/ /data0/ --files-from=file.list -artv >> ~/rsync.log
rsync -avz root@172.16.18.11::data_s/d /data0/ --list-only |grep -v -E '^d' > file.list

最新文章

  1. 【BZOJ-2893】征服王 最大费用最大流(带下界最小流)
  2. win8.1/win10 UEFI + GPT 安装(测试机型:华硕S56CM)
  3. 关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)
  4. [Angular2 Form] Use RxJS Streams with Angular 2 Forms
  5. MyEclipse10
  6. 路由器WDS桥接教程
  7. C++中关于函数的引用
  8. HashMap和HashTable 学习
  9. js 上传下载(留着备用)
  10. YCSB测试HBase远程完全分布式集群
  11. jsp/servlet环境搭建
  12. hibernate的Could not execute JDBC batch update错误原因及处理
  13. TCP/IP详解 卷1 第十七章 TCP:传输控制协议
  14. sql语句查询结果排序
  15. centos7启动iptables时报Job for iptables.service failed because the control process exited with error cod
  16. 双数组Trie的一种实现
  17. mysql_query — 发送一条 MySQL 查询
  18. 网站搜索引擎优化SEO策略及相关工具资源
  19. “全栈2019”Java多线程第十六章:同步synchronized关键字详解
  20. linux下开放端口

热门文章

  1. C++中静态成员变量要在类外部再定义或初始化的原因
  2. 洛谷 P4427
  3. 你好,我叫Flask
  4. Cookie、token、session的区别是什么?
  5. 一些树上dp的复杂度证明
  6. IOCP另一种实现
  7. c++功能与方法笔记
  8. 图文详解如何使用VMWare创建一套虚拟机“集群”
  9. 基于GPU的算法并行化
  10. 灵魂拷问:Java对象的内存分配过程是如何保证线程安全的?(阿里面试)