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
    
Logo

更多推荐