linux shell 测试题目,在线等

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux shell 测试题目,在线等相关的知识,希望对你有一定的参考价值。

现某公司有一台服务器在网络中提供WEB等服务,服务器将7X24小时运行。
现要求对服务器编写shell脚本对服务器进行监控和优化。
1、将linux服务器中的日进行备份,备份的文件为 access.log、mail.log、messages、login.log、error.log、kern.log,dmesg。
2、将文件大于10M的文件进行处理,将位于名单列表中的文件进行备份,备份目录为/opt/bakup/log(该目录为外接硬盘/dev/sdb1的挂载点,现已将设备挂载到系统当中)。
3、然后将备份过的日志文件删除。
4、如果,文件大于10M且日志文件不在日志备份列表中,则直接将该日志文件删除。
5、如果备份文件总大小大于1000M时,将最老的文件进行删除。
6、监控/dev/sdb1磁盘的总使用量,当磁盘总使用量超过60%时,向管理员发出警告通知(该通知使用echo向屏幕输出一句提示信息即可)

要求在答题时,代码格式清晰,功能完整。答题时间为120分钟。超过答题时间按0分处理。在完成脚本后将脚本上交到老师处。
或者有文字性的 思路 ... 就行了 ...... 速度.......要死了

1.tar一下
2.用find
3.删之前先确认一下刚才备份的tar包是否存在
4.先find 大于10M的文件,然后把文件名存个数组 跟你要备份的文件名也可以存个数组挨个if判断
5.find 1000m的文件。排序 rm
6.awk取磁盘使用量,然后判断,满足条件就echo
参考技术A 最后一个可以用quota 参考技术B 建议用dump,很多这种参数判断不需要你写脚本实现,去看看吧

6.{Linux}shell脚本应用(中)

What : 所学的计算机知识点是什么? 

wc -l(统计)例:unum'who | wc -l'

   [  条件表达式  ]中间可以加文件测试等。

文件测试:-d测试是否为目录,-e目录或文件是否存在,-f测试是否为文件,-r测试是否有读取权限,-w测试是否有写入权限,-x测试是否有执行权限。

整数值比较:-eq前一个等于后一个。-ne前一个不等于后一个,-gt前一个大于后一个,-lt前一个小于后一个,-le前一个小于等于后一个,-ge前一个大于等于后一个。例:[ $unnm -gt 5 ]  &&  echo "123"

字符串比较:= (前字符串等于后字符串),!=(前字符串不等于后字符串),-z(检测字符串是否为空)。例:[ $li != "123" ] && echo"not 123"

逻辑测试:&&,而且。||,或者。!逻辑否。

if语句:                                                  

单分支:                                         双分支:                            多分支:

if [ 条件测试]                                    if [ 条件测试 ]                    if [ 条件测试 ]

then                                                 then                                  then

命令序列                                          命令序列                          命令序列

fi                                                       else                                  elif  [ 条件测试2]

                                                         命令序列                          then

                                                         fi                                      命令序列

                                                                                                 else

                                                                                                 命令序列

                                                                                                 if

Why :为什么要引入这个知识点?解决什么问题? 

学习shell脚本

How :如何使用这个知识点? 

详情见下方实验。
Where :这个知识点用于何处? 

学习shell脚本

实验要求:

1、编写sysmon.sh脚本

(1)使用df命令提取出根分区的磁盘占用率,赋值给变量DUG。

(2)使用mpstat命令提取CPU使用率(需安装sysstat软件包),赋值给变量CUG。

(3)使用free命令提取出内存使用率,赋值给变量MUG。

(4)判断上述监控项目是否超标,将需要告警的信息保存到/tmp/alert.txt文件。

(5)判断/tmp/alert.txt文件是否存在,若存在则作为告警邮件发送。

实验过程:

[root@localhost ~]# vi /root/sysmon.sh

#!/bin/bash

# 提取性能监控指标(磁盘占用、CPU使用、内存使用)

①DUG=$(df -h | grep "/$" | awk '{print $4}' | awk -F% '{print $1}')

②CUG=$(expr 100 - $(mpstat | tail -1 | awk '{print $10}' | awk -F. '{print $1}'))

③MUG=$(expr $(free | grep "cache:" | awk '{print $3}') \* 100 / $(free | grep "Mem:" | awk '{print $2}'))

# 设置告警日志文件、告警邮箱

ALOG="/tmp/alert.txt"

AMAIL="root"

④# 判断是否记录告警

if [ $DUG -gt 90 ]

then

    echo "磁盘占用率:$DUG %" >> $ALOG

fi

if [ $CUG -gt 80 ]

then

    echo "CPU使用率:$CUG %" >> $ALOG

fi

if [ $MUG -gt 90 ]

then

    echo "内存使用率:$MUG %" >> $ALOG

fi

⑤# 判断是否发送告警邮件,最后删除告警日志文件

if [ -f $ALOG ]

then

    cat $ALOG | mail -s "Host Alert" $AMAIL

    rm -rf $ALOG

fi

[root@localhost ~]# chmod +x /root/sysmon.sh


以上是关于linux shell 测试题目,在线等的主要内容,如果未能解决你的问题,请参考以下文章

6.{Linux}shell脚本应用(中)

Linux系统shell脚本编程——生产实战案例

星云测试发布针对开放式Linux操作系统的嵌入式精准测试平台Shell

星云测试发布针对开放式Linux操作系统的嵌入式精准测试平台Shell

测试虚拟机的LINUX 指令连接本地的MYSQL数据库显示失败,请教一下是啥原因?最好能详细点吗?在线等谢谢

游戏开发令人拍案叫绝的小网站收藏