shell练习--if条件判断

目录

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

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

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


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

【1】安装软件

[root@client ~]# dnf install -y s-nail

 【2】进入配置文件设置管理员邮件

[root@client ~]# vim /etc/s-nail.rc 

set from=1807317897@qq.com             
set smtp=smtp.qq.com            
set smtp-auth-user=1807317897@qq.com   
set smtp-auth-password=xxx        # 邮箱授权码
set smtp-auth=login

【3】发送邮件,看看是否可以收到

[root@client ~]# echo "hello" | s-nail -s "title" 1807317897@qq.com

 【4】分析:如何查看当前磁盘剩余空间

[root@client day4]# df -h | grep /$ | awk '{print $4}' | cut -dG -f1

 【5】编写脚本ex1.sh

[root@client day4]# vim ex1.sh +
df_name=$(df -h | grep /$ | awk '{print $4}' | cut -dG -f1)

if [ $df_name -lt 20 ]
then
    echo "df too low, ${df_name}G" | s-nail -s "warning" 1807317897@qq.com
fi
[root@client day4]# chmod +x ex1.sh 
[root@client day4]# ./ex1.sh 

 运行结果,发送报警邮件

 【6】编写计划任务

[root@client day4]# crontab -e

0 0 * * * sh /scripts/day4/ex1.sh &>/dev/null

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

【1】前期准备

[root@client html]# setenforce 0                        # 关闭selinux
[root@client html]# systemctl stop firewalld.service        # 关闭防火墙

[root@client day4]# dnf install -y httpd        # 安装服务

[root@client day4]# cd /var/www/html/

[root@client html]# echo "hello shell." > /var/www/html/web.html

[root@client html]# systemctl restart httpd

【1】查看进程的方式进行判断

[root@client day4]# vim ex2.sh +
total=$(ps -ef | grep httpd | grep -v grep | wc -l)

if [ $total -gt 0 ]
then
    echo "runing"
else
    systemctl stop firewalld
    systemctl start httpd
fi
[root@client day4]# chmod +x ex2.sh
[root@client day4]# systemctl stop httpd
[root@client day4]# ./ex2.sh 
[root@client day4]# ./ex2.sh 
runing

【2】通过查看端口的方式进行判断

[root@client day4]# vim ex3.sh +
total=$(netstat -lnupt | grep 80 |wc -l)

if [ $total -gt 2 ]
then
    echo "runing"
else
    systemctl stop firewalld
    systemctl start httpd
fi
[root@client day4]# chmod +x ex3.sh
[root@client day4]# systemctl stop httpd
[root@client day4]# ./ex3.sh
[root@client day4]# ./ex3.sh
runing

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

[root@client day4]# vim ex4.sh +
if curl 192.168.111.20 &>/dev/null
then
    echo "web server is running"
else
    exit 12
fi
[root@client day4]# chmod +x ex4.sh 
[root@client day4]# ./ex4.sh 
web server is running
[root@client day4]# systemctl stop httpd
[root@client day4]# echo $?
12



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值