shell流程控制之条件判断练习案列

news2024/10/5 17:18:18

练习案例

    • 1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。
    • 2、判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式判断该程序是否运行),如果没有运行,则启动该服务并配置防火墙规则。
    • 3、使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,则返回web server is running;如果不能正常访问,返回12状态码。
    • 4.涉及知识点

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

#!/bin/bash
#########################
#File name:warning_mail.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2023-01-01 06:13:06
#Description:
#########################
free_root_space=`df -h | grep /$ | awk '{print $4}' | cut -d 'G' -f 1`
if [ $free_root_space -lt 20 ]
then
        `echo "disk_space less then 20G" | mail -s "disk_warning" root`
else
        `echo "free_disk_space: $free_root_space"`
fi

运行结果

[root@localhost homework3]# bash warning_mail.sh
[root@localhost homework3]# mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
“/var/spool/mail/root”: 46 messages 1 new 43 unread
U 45 root Mon Jan 2 06:21 19/641 “disk_warning”
N 46 root Mon Jan 2 22:30 18/631 “disk_warning”

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

#!/bin/bash
#########################
#File name:server.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2023-01-02 05:35:32
#Description:
#########################

#查看进程
num=`ps -ef | grep httpd | grep -v auto | wc -l`  
#num=`netstat -lnupt | grep 80 | wc -l`  查看端口
if [ $num -ne 1 ]
then
        echo "httpd server is running!"
else
        echo "httpd server start loadong......."
        systemctl restart firewalld
        firewall-cmd --add-port=80/tcp
        systemctl start httpd
fi

web服务已运行

[root@localhost homework3]# bash server.sh
httpd server is running!

web服务没有运行

[root@localhost homework3]# bash server.sh
httpd server start loadong…
success
[root@localhost homework3]# firewall-cmd --list-port
80/tcp

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

#!/bin/bash
#########################
#File name:test_server.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2023-01-02 05:54:59
#Description:
#########################
curl http://192.168.6.20 &>/dev/null
if [ $? -eq 0 ]
then
        echo "web server is running"
else
        echo "web server is failed"
        exit 12
fi

正常访问,返回

[root@localhost homework3]# bash test_server.sh
web server is running

不能正常访问,返回12状态码

[root@localhost homework3]# bash test_server.sh
web server is failed
[root@localhost homework3]# echo $?
12

4.涉及知识点

  1. 修改系统时区

修改资源文件

[root@localhost homework3]# vim /etc/profile

在资源文件最后一行加入

TZ=‘Asia/Shanghai’
export TZ

在这里插入图片描述
重新加载资源文件

[root@localhost homework3]# source /etc/profile

查看当前时区

[root@localhost homework3]# date
Tue Jan 3 14:36:48 CST 2023

修改系统时间

[root@localhost homework3]# date -s “2023-01-02 22:39:10”
[root@localhost homework3]# clock -w 将日期写入CMOS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/134649.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

memcpy与memmove函数的区别和实现

1.函数定义 memcpy与memmove都是C语言的库函数,在头文件string.h中,作用是内存拷贝。唯一的区别是,当内存发生局部重叠时,memmove保证了拷贝的结果是正确的,但是memcopy不一定是正确的。但是memcpy比memmove速度快。 …

zookeeper学习笔记3(小滴课堂)

zk集群核心知识之三种角色及其作用: 注册中心的三种模式: 选举核心概念及选举状态: 选举发生的时机及选举算法: zookeeper集群的搭建: 我们先来启动三台虚拟机: 然后我们来修改一下我们的zookeeper配置&a…

Introducing Tome, AI讲演助手

随着ChatGPT进入人们的视野,AI开始在越来越多的领域大展拳脚,近期,一款名为Tome的讲演编辑工具(类似幻灯片)推出了AI辅助创作的功能, Tome的AI讲演功能可以更轻松地将文本、图像、音频等多种媒体元素融合到…

CPU缓存一致性协议MESI

目录 CPU高速缓存(Cache Memory) CPU为何要有高速缓存 带有高速缓存的CPU执行计算的流程 目前流行的多级缓存结构 多核CPU多级缓存一致性协议MESI MESI协议缓存状态 MESI状态转换 多核缓存协同操作 单核读取 双核读取 修改数据 同步数据…

“英雄无敌”(一)

注意:在阅读本文前建议观看对应的视频教程,本文主要作为那些对视频教程仍有疑问的学习者的参考资料。且本文的部分内容有些过时(如仍使用旧版Unity的动画系统),故直接阅读本文对Unity的学习没有太大意义 视频教程&…

写小论文心得(计算机视觉领域)

简介 这篇博文打算讲一下我写小论文前后的过程,其中有许多地方我觉得对于新手来说还是有很多帮助的,包括我自己也是自己慢慢摸索出来的,希望能对正在准备自己第一篇论文的人有所帮助。 写论文的整个过程我想分为几个阶段: 1.获得…

【深度学习】生成对抗网络(GAN)生成海贼王图像 + PyTorch代码实现

文章目录一、数据集介绍1.1 lufei(路飞)1.2 luobin(罗宾)1.3 namei(娜美)1.4 qiaoba(乔巴)1.5 shanzhi(山智)1.6 suolong(索隆)1.7 wu…

【内核笔记】2022回顾-2023规划

文章目录一、2022博客总结二、2023博客规划三、改进沉淀、分享、成长,让自己和他人都能有所收获!😄 一、2022博客总结 2022年重点优化了🚀RK3399平台开发入门到精通系列专栏,订阅量突破2100个订阅2022年浏览量破190万2…

《梁启超家书》笔记三——交友取益,或读书取益,也要方面稍多,才有接谈交换,或开卷引进的机会

目录 1、学科选择建议 2、学习 3、所学不可太专向(不知道学科外其他方向的了) 4、建议欧游实地开开眼界 5、建议结婚前分开两地住 6、毕业后工作看法(分析利弊) 7、处事态度与人生观 1、学科选择建议 我很想你以生物学为主科,因为它是…

Vue(五)

1. 绑定class和style样式 dom里自己拿到节点,改它上面的class样式 shift()移除第一个class属性 push想加哪个class属性都行 59行div知道自己只能用两个样式,四种情况 上面这种不合法,就算把样式加进div也得 样式对象:里面的key绿…

【ElasticSearch7.X】学习笔记(一)

【ElasticSearch7.X】学习笔记一、介绍1.1、ElasticSearch1.2、RESTful1.3、数据格式二、下载安装(单机部署)2.1、解压文件2.2、修改配置配置2.3、创建用户并授权2.5、启动三、增删查改3.1、 索引操作3.1.1、增加索引3.1.2、查看索引3.1.2.1、查看所有索…

定时任务介绍及X-Job和E-Job简单对比

下面对elastic-Job和xxl-Job做个简单的描述和对比 一、区别 1、XJob环境依赖于mysql,不依赖ZooKeeper, 2、EJob依赖ZooKeeper1、X-Job 侧重的业务实现的简单和管理的方便,学习成本简单, 失败策略和路由策略丰富。推荐使用在“用户…

对elasticsearch的实际应用

有业务需求,要做一个搜索接口,从千万的数据中根据筛选项查到需要的数据 筛选项有 1.学段。高中,初中等 2.学科。数学,语文等 3.专区。同步专区,高考专区等 4.试卷类型。月考卷,期中考试卷等 5.年级。高一&a…

MyBatis-Plus常用注解

常用注解 TableName 在使用MyBatis-Plus实现基本的CRUD时,我们并没有指定要操作的表,只是在Mapper接口继承BaseMapper时,设置了泛型User,而操作的表为user表 由此得出结论,MyBatis-Plus在确定操作的表时,…

基于 Tensorflow 2.x 从零训练花卉图像识别模型

一、数据集准备 本篇文章使用数千张花卉照片作为数据集,共分为5个分类:雏菊(daisy)、蒲公英(dandelion)、玫瑰(roses)、向日葵(sunflowers)、郁金香&#xf…

ClickHouse中的数据类型

ClickHouse中的数据类型数据类型说明数值类型IntFloatDecimal字符串类型StringFixedStringUUID时间类型DateDateTimeDateTIme64复杂类型ArrayEnumTupleNested特殊类型IPV4GEOBoolean 和 Nullable[参考文章]: ClickHouse | 数据类型介绍 数据类型说明 …

Docker | docker安装portainer详细步骤

portainer是一款容器管理可视化界面,不想在虚拟中使用命令管理容器的小伙伴,可以选择安装portainer对容器进行管理,查看日志、启动、停止容器等非常方便。 1. 搜索portainer镜像 docker search portainer 2. 拉取portainer镜像 docker pull…

[torch]日志记录之SummaryWriter(持更)

参考博文: 《tensorboardX的简单使用》《详解PyTorch项目使用TensorboardX进行训练可视化》《使用TensorBoard检查监控深度学习模型》 一、使用方法 class SummaryWriter(builtins.object)| SummaryWriter(log_dirNone, comment, purge_stepNone, max_queue10, f…

Springboot扩展点之ApplicationContextInitializer

前言 一提到Spring、Springoboot,很多人马上就会想到依赖注入、控制反转、自动装配、约定大于配置、使开发变得简单等等。但是如果仅仅会使用Springboot、SpringMVC完成一些增删改查,解决一些bug,那么实际上你并没有真的懂Spring、Sp…

每天5分钟机器学习:线性判别分析LDA算法

本文重点 我们前面学习了PCA算法,本文我们将学习一种新的算法,这种算法和PCA非常相似,这个算法叫做线性判别分析,简称为LDA,也称为Fisher线性判别(Fisher Linear Discriminant,FLD),是模式识别的经典算法,在1996年由Belhumeur引入模式识别和人工智能领域。 LDA原理 …