温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

shell习题-22

发布时间:2020-03-07 17:16:08 来源:网络 阅读:227 作者:大屁孩儿 栏目:系统运维
题目要求

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

参考答案
#!/bin/bash #这个脚本用来判断一个网址是否正常 #作者:猿课-阿铭 www.apelearn.com #日期:2018-11-01 url="http://www.apelearn.com/index.php" mail_user=306798658@qq.com code=`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`" exit elif [ $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-01 t=`date +%F` cd $HOME tar czf $t.tar.gz `find ./ -type f -size -5k|xargs` 
题目要求

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

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

已知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=en log="/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." exit fi for i in `seq 1 $n` do echo $i done #是否继续打印 read -p "If continue? y/n" c case $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 
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI