Linux三剑客练习
linux 命令和三剑客实战练习文章目录日志信息抓取相关网络连接信息抓取网站信息抓取前置条件:linux 服务器中存在/tmp/xxx.log文件,请依据此文件进行匹配查找日志信息抓取相关去除日志中的空行几种方式# grep 方式去空行grep -v '^$' /tmp/xxx.log# sed 方式去空行sed '/^$/d' /tmp/xxx.log# awk 方式去...
linux 命令和三剑客实战练习
前置条件:linux 服务器中存在
/tmp/xxx.log
文件,请依据此文件进行匹配查找
日志信息抓取相关
-
去除日志中的空行几种方式
# grep 方式去空行 grep -v '^$' /tmp/xxx.log # sed 方式去空行 sed '/^$/d' /tmp/xxx.log # awk 方式去空行 awk '{if ($0!="") print}' /tmp/xxx.log
-
寻找信息先剔除最上面两行
awk 'NR>2' /tmp/xxx.log
-
找出存在 GET 或 POST 的行
grep -E 'GET|POST' /tmp/xxx.log
-
找到所有存在 error 字段所在行的前面 10 条数据,包含本行
grep -B 10 'error' /tmp/xxx.log
-
找出
GET /order/service
接口请求出现的行的次数grep -c 'GET /order/service' /tmp/xxx.log
-
找出访问量最大的 top 10 的 ip
cat /tmp/xxx.log | awk -F " " '{print $2}' | sort | uniq -c | sort -nrk 1 -t' ' | awk -F" " '{print $2}' | head -10
-
想筛掉
/tmp/xxx.log
此文件中 # 打头的行和一些空白的行(包含完全空行,和只含有空格的空行)第一个 sed 删掉 # 打头的行,第二个 sed 删掉没有任何字符的空行
cat /tmp/xxx.log | sed 's/^#.*$//g' | sed '/^$/d'
-
想要编辑修改此 log,把 aaa 替换成 bbb 还需备份一下原来的 log
sed -i.bak 's/aaa/bbb/g' /tmp/xxx.log
这里的 i 表示编辑了源文件了
-
找出日志中所有状态码不是 200 的行信息,注意状态码都是在第九列
awk '$9!~/200/{print $0}' /tmp/xxx.log
网络连接信息抓取
-
查看 6379 端口是否被占用
netstat -anp | grep '6379'
-
统计 80 端口的连接数
netstat -nat | grep '80' | wc -l
-
统计 httpd 协议连接数
ps -ef | grep 'httpd' | wc -l
-
统计已经连接并且状态为 ESTABLISHED 的连接
netstat -na | grep 'ESTABLISHED' | wc -l
-
指定 827 进程号 cpu 和 mem 占用率抓取
# 方式一 ps -o %cpu,%mem -p 827 # 方式二 ps -aux | grep '827'
这里 o 表示以特定格式,比如这里逗号的添加;p 表示进程 PID
网站信息抓取
-
访问 https://blog.csdn.net/abcnull,并且过滤其中所有 href 的行
curl https://blog.csdn.net/abcnull | grep href
-
访问 https://blog.csdn.net/abcnull,并且过滤其中所有 href 的行,并且只拿出 href 后面双引号中的网址
curl https://blog.csdn.net/abcnull | grep href | grep -o 'http[^"]*'
讲解:这里
[^]
表示字符取反,这个正则表示 http 字符串后面跟上 0 个或多个不是"
的字符,-o
表示独立显示匹配的内容 -
排查死链(逐一的访问各行网址然后,将成功返回 200 OK 的 url 进行输出,失败的 url 加上 ERR 标记也进行打印)
curl https://blog.csdn.net/abcnull | grep href | grep -o 'http[^"]*' | while read line;do curl -s -I $line | grep 200 && echo $line || echo ERR $line;done
更多推荐
所有评论(0)