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分处理。在完成脚本后将脚本上交到老师处。
或者有文字性的 思路 ... 就行了 ...... 速度.......要死了
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 测试题目,在线等的主要内容,如果未能解决你的问题,请参考以下文章
星云测试发布针对开放式Linux操作系统的嵌入式精准测试平台Shell
星云测试发布针对开放式Linux操作系统的嵌入式精准测试平台Shell