LINUX项目实操练习

练习1:html

一、提取 https://testing-studio.com/ 中的全部链接java

正则解释:-o匹配出符合条件的内容 -E使用扩展   [s] 中括号表示范围  表示匹配http或者https [^ '\"] 表示以空格 单引号或双引号结尾的(直到匹配到这三个中的字符 即结束)curl https://testing-studio.com | grep -oE "http[s]://[^ '\"]*"

二、去掉连接中的数字,给出一个全部的不带数字的链接linux

curl https://testing-studio.com | grep -oE "http[s]://[^ '\"]*“| sed -e's/[0-9]//g' -e's/%.*%.*//g'
‘s/[0-9]//g’ 表示把0-9数字用空替换

练习2:nginx

一、从shell服务器上的/tmp/nginx.log中找出全部404 500的报错数据,并去除其中的url
①找出全部404 500的报错数据shell

awk '$9~/404/ || $9~/500/' /tmp/nginx.log |less
匹配log文件中第九列为404 或500的行
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,咱们并无办法向前面翻,
只能日后面看,但若使用了 less 时,就能够使用 [pageup] [pagedown] 等按键的功能来往前日后翻看文件,更容易用来查看一个文件的内容!除此以外,在 less 里头能够拥有更多的搜索功能,
不止能够向下搜,也能够向上搜。
更多:https://www.cnblogs.com/peida/archive/2012/11/05/2754477.html

②去除其中的urlbash

awk '$9~/404/ || $9~/500/' /tmp/nginx.log | sed 's/"GET.*HTTP\/[0-9]\.[0-9]"//g'

练习3:服务器

一、找出访问量最高的ipless

awk '{print $1}' /tmp/nginx.log |sort |uniq -c | sort -n |tail -10
筛选出log日志中的第一列$1 ip
sort 它将文件进行排序,并将排序结果标准输出
sort(选项)(参数)
-n:依照数值的大小排序;
-r:以相反的顺序来排序;
-d:排序时,处理英文字母、数字及空格字符外,忽略其余的字符;
uniq命令用于报告或忽略文件中的重复行,通常与sort命令结合使用。
uniq(选项)(参数)

-c或——count:在每列旁边显示该行重复出现的次数;
-d或--repeated:仅显示重复出现的行列;

练习4:curl

一、找出访问量最高的页面,/topics/1234 topics/4567 视为一个页面函数

awk '{print $7}' /tmp/nginx.log |sort | sed 's/\/[0-9].*//g' |uniq -c |sort -n | tail -1

练习5:

提取 https://testing-studio.com/ 中的全部连接
找出不能被访问的链接(已完成)
封装为函数,传入一个网站,自动检查这个网站上的连接(已完成)

#设计一个函数,传入一个字符串或文件 根据判断其中的连接返回code码,找出其中的错误连接#!/bin/bash#author:FrankfindFailedUrl(){urls=$(curl $1 | grep -o -E "http[s]*://[^ ?'\"]*" | uniq -c);for url in $urls;do code=$(curl -I -m 10 -o /dev/null -s -w %{http_code} $url); if ((${code}>=400));then echo "${url}访问失败!";fidone}findFailedUrl https://testing-studio.com#$(curl -I -m 10 -o /dev/null -s -w %{http_code} $url)#-I 仅测试HTTP头#-m 10 最多查询10s#-o /dev/null 屏蔽原有输出信息#-s silent 模式,不输出任何东西#-w %{http_code} 控制额外输出

相关文章
相关标签/搜索