超详细shell脚本小练...

2024-02-21 00:04
文章标签 详细 shell 脚本 小练

本文主要是介绍超详细shell脚本小练...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

1.1.安装邮件服务

 

[root@node ~]# df -m
文件系统                   1M-块  已用  可用 已用% 挂载点
devtmpfs                     700     0   700    0% /dev
tmpfs                        716     0   716    0% /dev/shm
tmpfs                        287     8   279    3% /run
tmpfs                          4     0     4    0% /sys/fs/cgroup
/dev/mapper/openeuler-root 27385  2056 23913    8% /
tmpfs                        716     0   716    0% /tmp
/dev/sda1                    920    87   770   11% /boot
[root@node ~]# yum install mailx -y
[root@node ~]# vim /etc/mail.rc
set from=3471521632@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=3471521632@qq.com
set smtp-auth-password=anfbowpmrzfdchhi
set smtp-auth=login
注:使用:wq!强制退出

1.2.编写脚本

#!/bin/bash
disk=$(df -m | grep -w "/" | tr -s " " | cut -d " " -f4)
if [ $disk -lt 30000 ];thenecho "warning:disk space less than 30G!!!" | mail -s "warning:disk space less than 30G!!!" 3471521632@qq.com
fi注:df -m 以M为单位显示grep -w 精准定位tr -s 压缩空格

1.3.系统计划任务

0 0 * * *  root /bin/bash /root/df.sh

1.4.测试

发现时间不对 ,没有同步

[root@node ~]# timedatectl
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no
[root@node ~]# systemctl start  chronyd
[root@node ~]# timedatectl
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

 再次测试


2、判断web服务是否运行

(1、査看进程的方式判断该程序是否运行2、通过查看端口的方式判断该程序是否运行)

如果没有运行,则启动该服务并配置防火墙规则。

2.1.编写脚本

(脚本名字不要含nginx,否则grep有误)

[root@server ~]# cat ng.sh
#!/bin/bash
ps=$(ps -ef | grep nginx | grep -v grep | wc -l)
#ps=$(netstat -lntup | grep -w 80 | wc -l)
#ps=$(ss -lntup | grep -w 80 | wc -l)
if [ "$ps" -eq 0 ]
thenecho "nginx is stopping, please waiting..."yum install nginx -y &> /dev/nullsystemctl start firewalldsystemctl start nginxfirewall-cmd --permanent --zone=public --add-server=http &> /dev/nullfirewall-cmd --permanent --zone=public --add-port=80 &> /dev/nullfirewall-cmd --reload > /dev/nullecho "nginx is running"
elseecho "nginx is already running..."
fi

 2.2.测试

[root@server ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disa
     Active: active (running) since Thu 2024-01-25 03:14:12 CST; 3mi
   

[root@server ~]# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled
     Active: active (running) since Thu 2024-01-25 03:18:48 CST; 16s

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

3.1.编写脚本

#!/bin/bash
ip=$(ip a | grep ens32 | grep inet | tr -s " " | cut -d " " -f3 | cut -d "/" -f1)
curl -s $ip &> $ip
if [ $? -eq 0 ]
then echo "web-server is running..."
elseecho "web is not running..."exit 12
fi

3.2.测试

 

这篇关于超详细shell脚本小练...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/729987

相关文章

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的