Shell语句判断练习题_测试目录 media是否存在,此目录存在则输出yes3、判断是否存在 oot test目录,若不

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

(1)用户输入“yes”或“no”来确认强制删除任务

1.创建文件rm.sh

vim rm.sh

2.编写代码

#!/bin/bash

IF=""  #初始化
read -p "你要在此目录下删除的文件名:" dev

[ -e "$dev" ] && read -p "是否强制删除${dev}文件:" IF || echo "此文件不存在!"

[ "$IF" = "yes" ] && $(rm -f $dev) && echo "以强制删除${dev}文件!"

[ "$IF" = "no" ] && echo "以取消删除${dev}文件!"

3.赋予执行权限

chmod +x rm.sh

4、逻辑测试

判断当前linux系统的内核版本是否大于2.4。

A=$(uname -r | awk -F. '{print $1}')

[ "$A" >  2.4 ] && echo "大于2.4版本"

二、if条件语句

1、单分支if语句(参考书上112页的两个案例)

(1)判断挂载点目录,若不存在则自动创建

vim chkmountdir.sh

#!/bin/bash
mount_dir="/media/cdrom/"
if [ ! -d $mount_dir ]
then
    mkdir -p $mount_dir
fi

#赋予权限执行
chmod +x chkmountdir.sh
./chkmountdir.sh

(2)判断当前用户是否为root,如果不是则报错并执行“exit  1”退出脚本,不再执行其他代码。

vim chkifroot.sh

#!/bin/bash
if [ "$USER" != "root" ]
then
    echo "错误:非root用户,权限不足!"
    exit 1
fi
fdisk -l /dev/sda

#赋予权限执行
chmod +x chkifroot.sh
./chkifroot.sh

2、双分支if语句(参考书上113和114页的两个案例)

(1)判断目标主机是否存活,显示检测结果

vim pinghost.sh

#!/bin/bash
ping -c 3 -i 0.2 -w 3 $1 &> /dev/null
if [ $? -eq 0 ]
then 
    echo "host $1 is up."
else
    echo "host $1 is down."
fi


#赋予权限执行
chmod +x pinghost.sh
./pinghost.sh

(2)检查vsftpd服务是否运行,若运行则列出监听地址,PID号;否则输出提示“警告,vsftpd服务不可用”。(插入linux系统安装光盘,安装一下vsftpd软件包)

vim chkvsftpd.sh

#!/bin/bash
systemctl status vsftpd &> /dev/null
if [ $? -eq 0 ]
then
    echo "监听地址:$(netstat -anpt | grep vsftpd | awk '{print $4}')"
    echo "进程PID号:$(pgrep -x vsftpd)"
else
    echo "警告:vsftpd服务不可用!"
fi

#赋予权限执行
chmod +x chkvsftpd.sh
./chkvsftpd.sh

3、多分支if语句(参考书上115页的案例)

(1)根据输入的考试分数不同来区分优秀,合格,不合格三挡。

vim gradediv.sh

#!/bin/bash
read -p "请输入你的分数(0-100)": GRADE

if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ]
then
    echo "$GRADE分,优秀!"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ]
then
    echo "$GRADE分,合格"
else
    echo "$GRADE分,不合格"
fi


#赋予权限执行
chmod +x gradediv.sh
./gradediv.sh

三、编写系统监控脚本

实验要求如下

  1. 使用df命令提取出根分区的磁盘占用率,赋值给变量DUG
  2. 使用mpstat命令提取CPU使用率(需安装sysstat软件包),赋值给变量CUG。
  3. 使用free命令提取出内存使用率,赋值给变量MUG。
  4. 使用ps命令统计进程数,赋值给变量PUG
  5. 使用who命令统计登录的用户数,赋值给UUG
  6. 判断上述监控项目是否超标,将需要告警的信息保存到/tmp/alert.txt文件。
  7. 判断/tmp/alert.txt文件是否存在,若存在则作为告警邮件发送。
vim sysmon.sh

#!/bin/bash
# 提取性能监控指标(磁盘占用、CPU使用、内存使用)
DUG=$(df -hT | grep "/$" | awk '{print $6}' | awk -F% '{print $1}')
CUG=$(expr 100 - $(mpstat | tail -1 | awk '{print $12}' | awk -F. '{print $1}'))
MUG=$(expr $(free | grep "Mem" | awk '{print $3}') \* 100 / $(free | grep "Mem:" | awk '{print $2}'))
PUG=$(ps aux|wc  -l)
UUG=$(who|wc  -l)
# 设置告警日志文件、告警邮箱
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 [ $PUG -gt 200 ]
then
	echo “启动的进程超过了200,太多了” >>$ALOG
fi
if [ $UUG -gt 5 ]
then
	echo “登录的用户超过5个了,太多了” >>$ALOG
fi
# 判断是否发送告警,将告警信息显示在屏幕上,最后删除告警日志文件
if [ -f $ALOG ]
then
    cat $ALOG | mail -s "Host Alert" $AMAIL
    rm -rf $ALOG
fi

测试:

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

[外链图片转存中…(img-NExmWfUT-1715876995059)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值