shell习题-22
admin
2023-01-23 21:22:22
0次
题目要求

写一个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

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...