bash实例 查看网站的所有网址是否能正常访问、 匹配出3位数字中的后两位 、 利用Python的CGI搭建网站、 ps命令查看进程 、 打印某个进程20s之内的内存占用情况,并取出平均值、利用top获取某个进程的cpu和内存,并打印平均值

1、查看网站的所有网址是否能正常访问

对网站https://www.testing-studio.com/发起请求,查询字符 href ,并将字符通过 正则表达式,http[^ " ']*"过滤(过滤含有" 或者 ' ),再通过while循环,输出每一行,对每一行的连接发起请求。-i 只请求头信息,判断头信息,是否包含状态码:200,如果包含就输出 200 $ line,不包含就输出 ERROR

curl -s https://www.testing-studio.com/ | grep href | grep -o "http[^"']*" | while read line;do curl  -s -I $line | grep  200 && echo 200 $line || echo ERROR $line;done
curl -s https://www.testing-studio.com/ | grep -o "http[^"']*" | while read line;do curl  -s -I $line -s -I $line | gre | grep  "200 OK" &>/dev/null || echo 200 $line;done

在类Unix系统中,/dev/null(空设备文件或黑洞文件)是一个特殊的设备文件,所有写入其中的数据,都会被丢弃的无影无踪,/dev/null通常被用于丢弃不需要的数据输出,或作为用于输入流的空文件。这些操作通常由重定向完成。

2、匹配出3位数字中的后两位

 3、排序

netstat -tn | awk '{print $4}'| awk -F ':' '{print $1}'| sort | uniq -c| less

 4、利用Python的CGI搭建网站

python2 -m CGIHTTPServer 8080

python3 -m http.server

进行网站的转发

1)新建文件夹cgi-bin,在文件夹里面创建可执行文件

mkdir cgi-bin 

cd cgi-bin

vim bd.sh

#!/bin/bash
 echo "Content-type: text/html"
 echo ""
 curl http://www.baidu.com/s?$QUERY_STRING 2>/dev/null

2)运行网站

python2 -m CGIHTTPServer 8080

3)访问网站

127.0.0.1:8000/cgi-bin/bd.sh?wd=shell

会将网页请求转发到百度

访问静态页面

将1.html放到cgi-bin之外的文件夹,通过127.0.0.1:8000/1.html

 5、ps命令查看进程

ps -o uname,pid,ppid,thcount,ni,pri,psr,pcpu,pmem,rss,vsz,sz,start_time,time,comm,c,command -e | less

6、打印某个进程20s之内的内存占用情况,并取出平均值

14759是进程号

 for i in $(seq 20);do ps -o %mem -p 14759 | tail -1 ;sleep 1;done |awk '{t+=$1;print t,t/NR}'

查看某个应用进程

ps -ef | grep -i python

7、利用top获取某个进程的cpu和内存,并打印平均值

top -b -d 1 -n 20 -p 14759 | grep --line-buffered ^14759 | awk '{cpu+=$9;mem+=$10}{print $9,$10,cpu/NR,mem/NR}
原文地址:https://www.cnblogs.com/ychun/p/14361115.html