关于shell的面试题小练习(三道)
目录
第一题:(关于内存)
????????判断当前磁盘剩余空间是否有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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!