千家信息网

shell习题-22

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,题目要求写一个shell脚本,通过curl -I 返回的状态码来判定所访问的网站是否正常。比如,当状态码为200时,才算正常。参考答案#!/bin/bash#这个脚本用来判断一个网址是否正常#作者:猿
千家信息网最后更新 2026年11月01日shell习题-22
题目要求

写一个shell脚本,通过curl -I 返回的状态码来判定所访问的网站是否正常。
比如,当状态码为200时,才算正常。

参考答案
#!/bin/bash#这个脚本用来判断一个网址是否正常#作者:猿课-阿铭 www.apelearn.com#日期:2018-11-01url="http://www.apelearn.com/index.php"mail_user=306798658@qq.comcode=`curl -I $url 2>/tmp/curl.err|head -1|awk '{print $2}'`if [ -z "$code" ]then    python mail.py $mail_user "$url访问异常" "`cat /tmp/curl.err`"    exitelif [ $code != "200" ]then    curl -I $url &> /tmp/curl.log    python mail.py $mail_user "$url访问异常 状态码$code" "`/tmp/curl.log`" fi
题目要求

将用户家目录(考虑到执行脚本的用户可能是普通用户也可能是root)下面小于5KB的文件打包成tar.gz的压缩包,并以当前日期为文件名前缀,例如,2018-03-15.tar.gz。

参考答案

查看tar压缩包里面的文件 tar -tf tar.gz

#!/bin/bash#这个脚本用来打包用户家目录下小于5k的文件#作者:猿课-阿铭 www.apelearn.com#日期:2018-11-01t=`date +%F`cd $HOMEtar czf $t.tar.gz `find ./ -type f -size -5k|xargs`
题目要求

一个同学不小心用iptables规则把sshd端口22给封掉了,结果不能远程登陆,要想解决这问题,还要去机房,登录真机去删除这规则。 问题来了,要写个监控脚本,监控iptables规则是否封掉了22端口,如果封掉了,给打开。 写好脚本,放到任务计划里,每分钟执行一次。

参考答案
#!/bin/bash#这个脚本用来解封22端口#作者:猿课-阿铭 www.apelearn.com#日期:2018-11-01iptables -nvL INPUT --line-numbers |grep -w 'dpt:22' |awk '$4 ~/REJECT|DROP/ {print $1}' > /tmp/iptables.logn=`wc -l /tmp/iptables.log`if [ $n -gt 0 ]then    for n in `tac /tmp/iptables.log`    do    iptables -D INPUT $n    donefi
题目要求

已知nginx访问的日志文件在/usr/local/nginx/logs/access.log内,请统计下早上10点到12点 来访ip最多的是哪个?

参考日志
111.199.186.68 - [15/Sep/2017:09:58:37 +0800]  "//plugin.php?id=security:job" 200 "POST //plugin.php?id=security:job HTTP/1.1″"http://a.lishiming.net/forum.php?mod=viewthread&tid=11338&extra=page%3D1%26filter%3Dauthor%26orderby%3Ddateline" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3141.7 Safari/537.36"203.208.60.208 - [15/Sep/2017:09:58:46 +0800] "/misc.php?mod=patch&action=ipnotice&_r=0.05560809863330207&inajax=1&ajaxtarget=ip_notice" 200 "GET /misc.php?mod=patch&action=ipnotice&_r=0.05560809863330207&inajax=1&ajaxtarget=ip_notice HTTP/1.1″"http://a.lishiming.net/forum.php?mod=forumdisplay&fid=65&filter=author&orderby=dateline" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3141.7 Safari/537.36"
参考答案
#!/bin/bash#这个脚本用来分析Nginx访问日志#作者:猿课-阿铭 www.apelearn.com#日期:2018-11-01//定义语音为英文export LANG=enlog="/usr/local/nginx/logs/access.log"#时间的定义    1[01]:[0-5][0-9]: t=`date +%d/%b/%Y:1[01]:[0-5][0-9]:`egrep "$t" $log|awk '{print $1}' |sort -n |uniq -c |sort -n |tail -1 |awk '{print $2}'
题目要求

写一个shell脚本。提示输入一个暂停的数字,然后从1打印到该数字。然后询问是否继续。继续的话再输入一个数字接着打印,否则退出脚本。

例:如果输入的是5,打印1 2 3 4 5,然后继续输入15,然后打印6 7 …14 15 以此类推。

参考答案
#!/bin/bash#这个脚本用来打印数字#作者:猿课-阿铭 www.apelearn.com#日期:2018-11-01#输入一个数字read -p "Please input a number: " n#排除纯数字n1=`echo $n |sed 's/[0-9]//g'`if [ -n "$n1" ]then    echo "Please input a number."    exitfifor i in `seq 1 $n`do    echo $idone#是否继续打印read -p "If continue? y/n" ccase $c in  n|N)    exit    ;;  y|Y)    #第二次输入数字    read -p "Please input a number: " n2    #判断是否是纯数字    n3=`echo $n2|sed 's/[0-9]//g'`    if [ -n "$n3" ]    then    echo "Please input a number."    exit    fi    #判断第二个数字是否大于第一个数字    if [ $n2 -le $n ]    then    echo "$n2 should grater than $n."        exit    fi    for i in `seq $[$n+1] $n2`    do    echo $i    done    ;;  *)    echo "Please input y or n."    ;;esac
脚本 数字 日期 参考 输入 作者 文件 答案 题目 用户 日志 状态 端口 规则 目录 问题 监控 普通 以此类推 任务 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技网 中关村互联网 科技集团 深圳恒合互联网络科技有限公司 重庆互联网络科技 中国互联网科技发展 华中科技大学互联网 互联网金融 科技创新 互联网科技类展会 互联网科技素材视频竖屏 成都玖崟互联网科技有限公司乐商圈怎么样 想开互联网科技公司怎么样 河南住房之家互联网科技 明优互联网科技有限公司 互联网科技公司营业执照怎么办理 国大互联网教育科技有限公司薪资 中国新注册互联网科技 互联网科技企业商标注意事项 互联网科技品牌 亚光科技低轨卫星互联网 六子台科技互联网展会 互联网巨头反垄断金融科技 长亮科技 互联网金融 互联网科技创新企业排名 成都互联网科技公司100强 福建科技产业互联网发展 青岛科技大学互联网大赛研究生 阿大互联网科技有限公司 允成互联网科技有限公司融资 华夏恒生互联网科技013171 北京品多多互联网科技有限公司
0