设置http代理,https同理

http_proxy=http://112.126.81.122:60225 
curl -s http://www.baidu.com/s?wd=ip | grep 本机IP

提取对外连接的IP数量

netstat -ntp | sed 1,2d | awk '{print $5}' | awk -F ':' '{print $1}' | sort | uniq -c | sort -n | wc -l

netstat -ntp
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。
-n:直接使用ip地址,而不通过域名服务器
-t:显示TCP传输协议的连线状况
-p:显示正在使用Socket的程序识别码和程序名称
可以使用netstat --help命令查看帮助
sed 1,2d   删除第一行和第二行
uniq -c   uniq是和相邻的行比较去重,不相邻就不行,去重前先sort,-c表示计算相同的行数有多少
sort -n   根据数值大小排序
sort -u   去除重复行
wc -l   -c统计字节数 -l统计行数 -w统计字数

提取testerhome首页精华帖的点赞数

curl -s https://testerhome.com 2>/dev/null | grep -b1 'fa fa-diamond' | grep 'href' | awk -F '\"' '{print $4}' | grep 'topics' | while read line; do count=$(curl -s https://testerhome.com$line 2>/dev/null | grep 'data-count.*likeable' | head -1 | awk -F '\"' '{print $4}'); echo "$line is: $count"; done

2>/dev/null   0标准输入 1标准输出 2标准错误,将标准错误输出到/dev/null中,/dev/null是一个黑洞
grep -b1   输出匹配的行及其前一行后一行,-A1输出匹配的行及后一行 -B1输出匹配的行及前一行
head -1   显示匹配到的行的第一行

从nginx log中提取数据并可视化

  • cat 1206_2.log | sed -n ‘/07:48:00/,/07:52:00/p’ | gnuplot -e "set terminal dumb; set datafile separator ‘ ‘;set timefmt ‘[%d/%b/%Y:%H:%M:%S’; set ydata time; set format y ‘%H:%M:%S’;plot ‘<cat’ using 8:4 with lines"

  • sed -n ‘/07:48:00/,/07:52:00/p’ -n静态显示,’/07:48:00/,/07:52:00/p’打印这段时间域的日志,p表示print,d表示delete

  • set ydata time; set format y ‘%H:%M:%S’ 设置纵坐标为时间,以及时间格式

  • gnuplot -e "set terminal dumb; set datafile separator ‘ ‘ 终端设置及文件分隔符

  • plot ‘<cat’ using 8:4 with lines" plot ‘<cat’固定用法,using 8:4是取的数据的一个域,展示第4列和第8列

提取系统state连接种类

netstat -ntp | sed 1,2d | awk '{print $6}' | sort | uniq -c

teserhome 某一精华帖任意一回复贴的数量,任意一个精华帖会有多个回复、找出任意一个回复贴的点赞数

每个精华帖的回复数

curl -s https://testerhome.com/topics/excellent 2>/dev/null | grep -o 'href="/topics/[0-9]*"' | awk -F '/|"' '{print $4}' | while read line; do reply=$(curl -s https://testerhome.com/topics/$line 2>/dev/null | grep -m1 '共收到' | awk -F '|' '{print $2}');echo "$line reply is $reply";done

每个精华帖的回复的点赞数

curl -s https://testerhome.com/topics/excellent 2>/dev/null | grep -o 'href="/topics/[0-9]*"' | awk -F '/|"' '{print $4}' | while read line; do replyzan=$(curl -s https://testerhome.com/topics/$line 2>/dev/null | grep 'Reply' | grep -o 'data-count="[0-9]*' | awk -F '"' '{print $2}'); count=1; for zan in $replyzan; do echo "$line第$count条回复的赞为$zan"; count=$(($count+1)); done; echo -e "\n"; done

查看系统信息

  • Linux查看当前操作系统发行版信息:cat /proc/version
  • Linux查看cpu相关信息,包括型号、主频、内核信息等:cat /proc/cpuinfo cat /etc/os-release

sed ‘s#正则#结果#g’ g表示替换正则匹配的全部

echo 123abc456  | sed 's#abc#_#'
123_456
echo 123abc456  | sed 's#[2-9]#x#g'
1xxabcxxx
echo 123abc456  | sed 's#[2-9]#x#'
1x3abc456

性能统计 统计某个进程的cpu和mem的增长情况 打印三列数据 时间 cpu mem

for i in $(seq 1 20);do time=$(date +%H:%M:%S);  info=$(ps -o %cpu -o %mem 9081 | tail -1 );echo $time $info ;sleep 1;done

任务处理 使用简易的工具对第三方服务做加压并统计性能

while true; do count=$(jobs -l | grep Running|wc -l); [ $count -le 5 ] && { time curl https://testerhome.com/topics/17870 &>/dev/null  & } || echo $count waiting ;done

绘图工具可视化gnuplot

  • echo ‘1
    2
    3
    4
    5
    6’ | gnuplot -e "set terminal dumb;plot ‘<cat’ using 1 with line"

找出log中的404 500的报错

grep -E " 404 | 500 " /tmp/nginx.log
awk '$9=="404"' /tmp/nginx.log

找出500错误数据行的前10条非500的数据

grep -B 10 " 500 " /tmp/nginx.log | less

找出访问量最高的ip

全部数据
awk '{print $1}' /tmp/nginx.log | sort | uniq -c | sort -rn | head -1
前1000条数据中访问量最高的前5个ip
head -1000 /tmp/nginx.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -5

找出访问量最高的页面地址

awk '{print $7}' /tmp/nginx.log | sed -e "s#[0-9]\{1,\}#*#g" -e 's#?.*##' -e 's#/[^/]*\.png.*##' | sort | uniq -c | sort -nr | head -10

发表评论

电子邮件地址不会被公开。