Shell脚本命令试题

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

#!/bin/bash

# 设置管理员邮箱
admin_email="admin@163.com"

# 获取当前日期
current_date=$(date +"%Y-%m-%d")

# 获取磁盘剩余空间,单位为GB
free_space=$(df -h | grep '/dev/sda1' | awk '{print $4}')

# 判断剩余空间是否小于20G
if [[ $(echo $free_space | sed 's/G//') -lt 20 ]]; then
    # 发送报警邮件给管理员
    echo "磁盘剩余空间不足20G,请及时处理!" | mail -s "磁盘空间报警 - $current_date" $admin_email
fi

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

1、查看进程方式

#!/bin/bash

# 检查Web服务进程是否在运行
if pgrep -x "nginx" > /dev/null; then
    echo "Nginx服务正在运行."
else
    echo "Nginx服务未运行,正在启动..."
    # 启动Nginx服务
    systemctl start nginx

    # 添加防火墙规则,允许80端口访问
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --reload

    echo "Nginx服务已启动并配置防火墙规则."
fi

2、查看端口方式

#!/bin/bash

# 检查Web服务端口是否监听
if ss -tln | grep -q ':80 '; then
    echo "Web服务正在监听80端口."
else
    echo "Web服务未监听80端口,正在启动服务并配置防火墙规则..."
    # 启动Web服务,例如Nginx或Apache等
    systemctl start nginx

    # 添加防火墙规则,允许80端口访问
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --reload

    echo "Web服务已启动并配置防火墙规则."
fi

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

#!/bin/bash

# 设置Web服务的URL
web_url="http://localhost"

# 使用curl命令测试Web服务是否正常运行
if curl -s --head $web_url | grep "HTTP/1.1 200 OK" > /dev/null; then
    echo "Web server is running."
else
    echo "Error: Web server is not running."
    exit 12
fi

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值