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}