shell编程题

目录

一. 第一题

1、安装邮件服务

获取SMTP服务建立连接时的身份验证码

         2、编写脚本

3、系统计划任务

4、测试结果

二. 第二题

1、编写脚本

2、脚本测试

三. 第三题

1、编写脚本

2、测试脚本


一. 第一题

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

1、安装邮件服务

获取SMTP服务建立连接时的身份验证码

在QQ邮箱中点击设置、账号找到下面选项,点击管理服务

点击生成授权码

[root@server ~]# yum install s-nail -y
[root@server ~]# vim /etc/s-nail.rc   #编辑s-nail邮件客户端的配置文件

#在文件最后添加
set from=999@qq.com  #设置邮件的发件人地址
set smtp=smtp.qq.com       #设置SMTP服务器的地址
set smtp-auth-user=999@qq.com  #指定SMTP服务器身份验证的用户名
set smtp-auth-password=qtbns.......caac   #指定SMTP服务器身份验证的密码
set smtp-auth=login        #设置SMTP服务器的身份验证方式为登录方式

2、编写脚本

[root@server ~]# vim work1.sh 

#!/bin/bash 
number=$(df -m | grep -w / | tr -s " " | cut -d " " -f4)  #获取可用磁盘大小(单位M)
war="警告磁盘空间小于20G当前磁盘空间为$(($number/1024))G"
if (($number<20480))                                       
then  
        echo "$war" | mail -s "$war" 999@qq.com     #如果磁盘空间小于20G发送警告邮件(假QQ)
else
        echo "磁盘空间充足还剩余$($number/1024)"
fi  

3、系统计划任务

[root@server ~]# vim /etc/crontab 

0 0 * * * root bash /root/work1.sh

#0 0 * * * 表示在每天的午夜(00:00)执行任务。
#root 表示以root用户的身份运行该任务。
#bash /root/work1.sh 表示要执行的命令是在bash中运行 /root/work1.sh 脚本。

4、测试结果

可以先将系统计划任务设为每分钟发送一次查看正确性

二. 第二题

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

1、编写脚本

[root@server ~]# vim work2.sh

#!/bin/bash
ps=$(ps -ef | grep httpd | grep -v grep | wc -l)
if (($ps > 0 ))
then
        echo "httpd 已运行"
else
        echo "http 未运行"
        yum install httpd -y > /dev/null
        systemctl start httpd
        systemctl start firewalld
        firewall-cmd --permanent --zone=public --add-service=http > /dev/null  
        #这将允许通过HTTP协议访问服务器。命令的输出将被丢弃,不会显示在终端上
        firewall-cmd --permanent --zone=public --add-port=80/tcp >/dev/null
        #这将允许通过TCP协议访问端口80。命令的输出将被丢弃,不会显示在终端上
        echo "http已运行"
fi           

2、脚本测试

运行脚本                    

查看http是否运行

三. 第三题

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

1、编写脚本

[root@server ~]# vim work3.sh

#!/bin/bash
ip=$(ip a | grep ens160 | grep inet | tr -s " " | cut -d " " -f3 | cut -d "/" -f1)
#将ip地址切割出来
curl -s $ip > /dev/null
if (($?==0))
then
        echo "web已运行"
else
        echo "Web未运行"
        exit 12
fi

2、测试脚本

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值