关于shell的面试题小练习(三道)

2023-12-14 16:33:30

目录

第一题:(关于内存)

第一步:需了解使用的大纲命令

第二步过滤取得具体所需的值

第三步:具体执行步骤及命令

1)安装邮件软件

2)编辑脚本

方法一:脚本编辑1

方法二:脚本编辑2

第二题(关于web服务)

第一步:需了解使用的大纲命令

第二步:编辑脚本

第三题:(if条件匹配)


第一题:(关于内存)

????????判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。

第一步:需了解使用的大纲命令

判断内存使用的命令free? -m

判断硬盘使用情况的命令 df -h?

第二步过滤取得具体所需的值

[root@server a2]# df -h |grep -w / | tr -s " " |cut -d " " -f4
11G? ?????# 含有单位处理较复杂,因此我们直接使用“df”命令(该命令默认使用单位为字节)

????????[root@server a2]# df -h |grep -w / | tr -s " " |cut -d " " -f4 | cut -d "G" -f1
????????11? ? ? ? ? ?# 针对上命令使用的取巧方法

[root@server a2]# df |grep -w / | tr -s " " |cut -d " " -f4
11091768? ? ? ? ? ? ? ? # 需化单位%1024单位为 K 。在除以%1024单位为兆。再除以%1024单位为G

第三步:具体执行步骤及命令

1)安装邮件软件

[root@server a2]# yum install s-nail -y
#需强制保存

set from=3192238232@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=3192238232@qq.com
set smtp-auth-password=doc....ubqbibi
set smtp-auth=login
2)编辑脚本
方法一:脚本编辑1

[root@server a2]# vim disk1.sh

#!/bin/bash
disk=$(df -m | grep -w "/" |tr -s " " | cut -d " " -f4)

str1="warning disk space less than 20G"

if [ "$disk" -lt 20000 ];then
        echo "$str1" | mail -s "$str1" 3192238232@qq.com
fi

????????20G=20000兆

# 编写周期性计划????????

[root@server a2]# vim /etc/crontab?

0 0 * * * root /bin/bash /root/a2/disk1.sh
方法二:脚本编辑2
#!/bin/bash
disk=$(df -h | grep -w "/" |tr -s " " | cut -d " " -f4 | cut -d "G" -f1)

str1="warning disk space less than 20G"

if [ "$disk" -lt 20 ];then
        echo "$str1" | mail -s "$str1" 3192238232@qq.com
fi

其余步骤不变!!

第二题(关于web服务)

????????判断web服务是否运行 (1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式判断该程序是否运行),如果没有运行,则启动该服务并配置防火墙规则。

第一步:需了解使用的大纲命令

[root@server a2]# ps -ef | grep httpd |grep -v "grep" |wc -l?
5????????

第二步:编辑脚本

[root@server a2]# vim web1.sh

#!/bin/bash
ps=$(ps -ef |grep "httpd" | grep -v "grep" | wc -l)

if [ $ps -gt 0 ];then
        echo "httpd 正在运行!"
else
        echo "httpd 没有正常运行"
        yum install httpd -y &> /dev/null
        systemctl start httpd
        systemctl start firewalld
        firewall-cmd --permanent --zone=public --add-service=http > /dev/null
        firewall-cmd --permanent --zone=public --add-port=80/tcp > /dev/null
        firewall-cmd --reload > /dev/null
        echo "httpd已经开始运行,防火墙策略已配置!!"

fi

[root@server a2]# bash web1.sh?
httpd正在运行!

端口过滤:

[root@server a2]# netstat -lntup |grep 80 | wc -l?
[root@server a2]# ss -lntup |grep 80? |wc -l?

第三题:(if条件匹配)

3、使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,则返回web serveris running;如果不能正常访问,返回12状态码。

#!/bin/bash
curl -s 192.168.17.128 > /dev/null

if (($?==o))
then
        echo "web 正常运行!"
else
        echo "web 没有正常运行!"
        exit 12
fi

文章来源:https://blog.csdn.net/2302_77035737/article/details/134993462
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。