当前位置: 首页 > news >正文

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

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

因为如果磁盘剩余空间小于20G需要报警发送邮件给管理员,所以需要对管理员的邮箱进行设置

(1)首先安装软件:

[root@server scripts]# yum install -y s-nail

(2)进入邮件配置文件中设置管理员邮件:vim /etc/s-nail.rc

set from=1281984647@qq.com             
set smtp=smtp.qq.com                   
set smtp-quth-user=1281984647@qq.com   
set smtp-auth-password=dacqjvfivytdiagj
set smtp-auth=login  

(3)尝试向管理员发送邮件: echo "test 1" |s-nail -s "title" 1281984647@qq.com

编写shell脚本free.sh:将以下内容写入

if  [  "`df -h | grep /$ | tr -s " " | cut -d" " -f4 | cut -d"G" -f1`"  -lt 20 ]   
then                                                                               echo "管理员快看看你的内存不够20G了" | s-nail -s "title" 1281984647@qq.com
fi   

(4)测试运行:./free.sh

管理员成功的收到了内存不够的警告 !

(5)设置任务计划每天检查一次:crontab -e

0 0 * * * sh /server/scripts/free.sh
[root@server scripts]# crontab -l
0 0 * * * sh /server/scripts/free.sh

2、判断web服务是否运行

(1)查看进程的方式判断该程序是否运行

编写脚本:vim check_httpd.sh

if [  "`ps -aux |grep httpd |grep -v grep | tr -s " " |cut -d " " -f8 |uniq | wc -l`" -lt 2 ]
then                           systemctl start httpd      
else                           echo "httpd服务已经运行了"                                                    
fi 

测试:./check_httpd.sh

[root@server scripts]# ./check_web.sh 
[root@server scripts]# ./check_web.sh 
httpd服务已经运行了

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

编写脚本:vim check_httpd2.sh

if [ "`netstat -lnupt | grep 80 |wc -l`" -eq 0  ]                                  
then                                                                               systemctl start httpd;firewall-cmd --permanent --zone=public --add-port=80/tcp
else                                                                               echo "httpd服务已经启动"                                                       
fi

测试:./check_httpd2.sh

[root@server scripts]# ./check_web2.sh 
success
[root@server scripts]# ./check_web2.sh 
httpd服务已经启动

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

编写脚本:vim curl.sh

read -p "请输入一个网址:" w
curl $w         
if  [ "`echo $?`" -eq 0  ]
then            echo "web server is running"
else            echo "状态码12"
fi   

测试:./curl.sh

[root@server scripts]# ./curl.sh 
请输入一个网址:www.baidu.com
web server is running[root@server scripts]# ./curl.sh 
请输入一个网址:www.qweqweweqweweeressd.com
curl: (6) Could not resolve host: www.qweqweweqweweeressd.com
状态码12

相关文章:

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

1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。​ 因为如果磁盘剩余空间小于20G需要报警发送邮件给管理员,所以需要对管理员的邮箱进行设置 (1)首先…...

linux中TF启动卡制作:磁盘分区文件同步

文章目录 前言:1. 连接TF卡2. 磁盘卸载载与分区2.1 磁盘卸载2.2 创建第一个分区2.3 创建第二个分区 3. 磁盘格式化4. 文件同步5. 检查与BOOT分区启动文件拷贝总结: 前言: TF卡在linux环境下配置好相关软件后,把配置好的系统以及软…...

【操作系统OS】学习笔记:第一章 操作系统基础【哈工大李治军老师】

基于本人观看学习 哈工大李治军老师主讲的操作系统课程 所做的笔记&#xff0c;仅进行交流分享。 特此鸣谢李治军老师&#xff0c;操作系统的神作&#xff01; 如果本篇笔记帮助到了你&#xff0c;还请点赞 关注 支持一下 ♡>&#x16966;<)!! 主页专栏有更多&#xff0…...

Linux C/C++ 网络编程中地址格式转换(inet_pton和inet_ntop函数)

网络编程中地址格式转换&#xff08;inet_pton和inet_ntop函数&#xff09; 地址格式转换 #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h>int inet_pton(int af , const char * src ,void * dst);&#xff08;1&#xf…...

庖丁解牛函数知识---C语言《2》

目录 前言&#xff1a; 1.嵌套调用函数 2.链式访问 3.函数的声明与定义 4.*递归 5.递归与非递归 ❤博主CSDN:啊苏要学习 ▶专栏分类&#xff1a;C语言◀ C语言的学习&#xff0c;是为我们今后学习其它语言打好基础&#xff0c;C生万物&#xff01; 开始我们的C语言之旅吧…...

Git 使用教程:最详细、最正宗手把手教学(万字长文)

目录 一&#xff1a;Git二&#xff1a;SVN与Git的的区别三、安装Git四&#xff1a;常规操作五&#xff1a;远程仓库六&#xff1a;创建与合并分支七&#xff1a;bug分支八&#xff1a;多人协作九&#xff1a;git可视化工具 Git Git 是一种分布式版本控制系统&#xff0c;用于…...

【华为OD机试 2023最新 】最优资源分配/芯片资源占用(C语言题解 100%)

文章目录 题目描述输入描述输出描述备注用例题目解析代码思路C语言题目描述 某块业务芯片最小容量单位为1.25G,总容量为M*1.25G,对该芯片资源编号为1,2,…,M。该芯片支持3种不同的配置,分别为A、B、C。 配置A:占用容量为 1.25 * 1 = 1.25G配置B:占用容量为 1.25 * 2 =…...

markdown二元运算符

符号markdown名称 \pm \pm正负/加减 ∓ \mp ∓\mp负正/减加 \times \times乘号 ⋅ \cdot ⋅\cdot点乘号 \div \div除号 ∣ \mid ∣\mid整除 ∤ \nmid ∤\nmid不整除 ⊕ \oplus ⊕\oplus异或...

【华为/华三】PPP

NCP network阶段 用于协商网络层参数&#xff0c;IPCP静态协商IP地址&#xff08;即互推地址&#xff09;动态协商叫做获得地址 Q&#xff1a;为什么PPP两端&#xff0c;可以不在一个网段内&#xff0c;也能够通信&#xff1f; A&#xff1a;因为PPP中的NCP会通过IPCP协商IP…...

【Java笔试强训 9】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;另类加法…...

【C++】STL标准库之list

STL标准库之list list类的简介常用的list类的接口构造迭代器容量访问修改 list和vector的区别 list类的简介 list是一种序列式容器&#xff0c;可以在任意位置插入和删除元素&#xff0c;并且其时间复杂度为O(1)&#xff0c;在底层&#xff0c;list是双向链表结构&#xff0c;…...

Nomogram | 盘点一下绘制列线图的几个R包!~(二)

1写在前面 不知道各位小伙伴的五一假期过的在怎么样&#xff0c;可怜的我感冒了。&#x1f637; 今天继续之前没有写完的列线图教程吧&#xff0c;再介绍几个制作列线图的R包。&#x1f920; 2用到的包 rm(list ls())library(tidyverse)library(survival)library(rms)library(…...

Django之定时任务django-crontab

Django之定时任务django-crontab crontab安装django-crontab注册应用定时时间格式定时时间示例设置定时任务符号方法解决crontab中文问题管理定时任务注意 crontab Django可以使用第三方库如django-crontab来实现定时任务的调度。该库允许使用类似于crontab文件格式的语法指定任…...

linux常见命令

ls&#xff1a;列出当前目录下的所有文件和子目录 cd&#xff1a;切换当前工作目录&#xff0c;例如 cd /home/user 进入 /home/user 目录 pwd&#xff1a;显示当前工作目录的路径 mkdir&#xff1a;创建一个新目录&#xff0c;例如 mkdir newdir 创建一个名为 newdir 的目录…...

【14.HTML-移动端适配】

移动端适配 1 布局视口和视觉视口1.1 设置移动端布局视口宽度 2 移动端适配方案2.1 rem单位动态html的font-size&#xff1b;2.2 vw单位2.3 rem和vw对比2.4 flex的弹性布局 1 布局视口和视觉视口 1.1 设置移动端布局视口宽度 避免布局视口宽度默认980px带了的缩放问题,并且禁止…...

平衡二叉树旋转机制

概念 平衡二叉树的旋转机制是一种通过对树进行旋转操作来保持其平衡的方法。 分类 平衡二叉树的旋转机制包括两种基本类型的旋转&#xff1a;左旋和右旋&#xff0c;以及它们的组合。 左旋 左旋是将一个节点的右子节点旋转到它的位置上&#xff0c;同时将该节点移到其左侧&…...

深入浅出C++ ——C++11

文章目录 一、C11简介二、列表初始化二、声明四、范围for循环五、STL中的变化六、右值引用和移动语义1. 什么是左值&#xff1f;什么是左值引用&#xff1f;2. 左值引用与右值引用比较3. 右值引用使用场景和意义4. 完美转发 新的类功能默认成员函数类成员变量初始化defaultdele…...

智能座舱3.0阶段,看全球巨头如何打造更具“价值”的第三空间

面向中国这一全球最大的汽车电动化与智能化单一市场&#xff0c;作为全球第七大汽车技术供应商的FORVIA佛瑞亚集团开始全面发力。 在2023年上海国际车展上&#xff0c;FORVIA佛瑞亚携旗下佛吉亚与海拉一系列突破性技术和互动体验亮相&#xff0c;展示了对电气化与能源管理、安…...

【Linux】入门介绍

&#x1f331;博客主页&#xff1a;大寄一场. &#x1f331;系列专栏&#xff1a;Linux &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注​ 目录 前言 Linux背景介绍 1.发展史 UNIX发展的历史 Linux发展历史 2. 开源 3. 官网 4. 企业应用现状 5. 发行版…...

【Python】序列类型②-元组

文章目录 1.元组简介2.元组的定义2.1定义只有一个元素的元组 3.元组的下标访问4.元组的常用方法5.使用in判断是否存在元素6.多元赋值操作 1.元组简介 元组和列表一样可以存放多个,不同数据类型的元素 与列表最大的不同就是:列表是可变的,而元组不可变 2.元组的定义 元组的定义:…...

5分钟掌握HunterPie:提升《怪物猎人:世界》狩猎效率的完整游戏辅助工具指南

5分钟掌握HunterPie&#xff1a;提升《怪物猎人&#xff1a;世界》狩猎效率的完整游戏辅助工具指南 【免费下载链接】HunterPie-legacy A complete, modern and clean overlay with Discord Rich Presence integration for Monster Hunter: World. 项目地址: https://gitcode…...

5G双连接(EN-DC):开启5G网络融合新体验

5G双连接&#xff08;EN-DC&#xff09;&#xff1a;开启5G网络融合新体验 在5G网络快速发展的进程中&#xff0c;5G双连接&#xff08;EN-DC&#xff09;技术逐渐成为行业内关注的焦点。它作为5G网络架构中的一项关键技术&#xff0c;为提升网络性能、优化用户体验发挥着重要作…...

QMCDecode:3分钟解锁QQ音乐加密格式,让音乐真正属于你

QMCDecode&#xff1a;3分钟解锁QQ音乐加密格式&#xff0c;让音乐真正属于你 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#…...

手把手教你:用闲置安卓手机+IP摄像头App,5分钟搭建一个免费的RTSP监控流

闲置安卓手机变身专业监控摄像头&#xff1a;零成本RTSP视频流搭建全指南 你是否曾想过&#xff0c;抽屉里那台落灰的旧安卓手机还能发挥余热&#xff1f;今天我们将彻底释放它的潜能——无需额外硬件投入&#xff0c;仅用5分钟就能将其改造为支持RTSP协议的专业级监控摄像头。…...

别再傻傻分不清!舵机、步进、无刷、永磁同步,这四种电机到底怎么选?

电机选型实战指南&#xff1a;舵机、步进、无刷与永磁同步的黄金法则 在机器人关节调试现场&#xff0c;一位工程师盯着反复抖动的机械臂摇头&#xff1a;"早知道该用无刷电机..."&#xff1b;创客空间里&#xff0c;几个学生围着一台失控的3D打印机争论&#xff1a…...

ShareGPT4Omni/ShareGPT4Video:构建可分享的AI对话知识库实战指南

1. 项目概述&#xff1a;当AI多模态模型遇上“分享”的刚需 最近在AI圈子里&#xff0c;一个现象级的开源项目“ShareGPT4Omni/ShareGPT4Video”引起了我的注意。乍一看标题&#xff0c;你可能以为这又是一个基于GPT-4的对话应用&#xff0c;但它的核心价值远不止于此。简单来说…...

性能测试指标选不对,报告全白费!从一次线上故障复盘TPS、RT与吞吐量的关系

性能指标迷局&#xff1a;当高QPS掩盖了系统瓶颈的真相 那天凌晨三点&#xff0c;我被一阵急促的电话铃声惊醒。电商大促系统监控面板上QPS曲线依然漂亮&#xff0c;但业务方反馈用户下单延迟高达15秒——这个看似矛盾的场景&#xff0c;揭开了性能指标认知中最危险的陷阱。我…...

在「唯」与「阿」之间安放计算之道,老子这句话给 SAP HANA 开发的一层提醒

「唯之与阿,相去几何?美之与恶,相去若何?人之所畏,不可不畏。荒兮,其未央哉!」放在 SAP HANA 开发里看,不是把古文硬贴到技术上,而是在提醒我们,很多工程判断看起来差别很小,落到系统运行里却会拉开很大的距离。一个 JOIN 写在 application server,还是下推到 data…...

前端工程化:开发环境配置最佳实践

前端工程化&#xff1a;开发环境配置最佳实践 前言 开发环境配置是前端工程化的基础。一个良好的开发环境能大大提高开发效率&#xff0c;减少团队协作中的环境问题。今天我就来给大家讲讲如何配置一套高效的前端开发环境。 为什么开发环境配置如此重要 开发环境是开发者日常工…...

从LTV-M501到系统集成:高速光耦隔离通信的选型与实战设计

1. 高速光耦隔离通信的核心价值 第一次接触工业现场总线改造项目时&#xff0c;我被电机控制器和PLC之间的通信干扰问题折磨了整整两周。直到老工程师递给我几个LTV-M501光耦&#xff0c;问题才迎刃而解。这种通过光信号传递电信号的器件&#xff0c;就像给通信线路装上了"…...