Linux之实现Apache服务器监控、数据库定时备份及通过使用Shell脚本发送邮件

目录

 一、Apache服务器监控

为什么要用到服务监控?

实现Apache服务器监控

二、数据库备份

为什么要用到数据库备份?

实现数据库备份

三、Shell脚本发送邮件

为什么要用使用Shell脚本发送邮件?

实现Shell脚本发送邮件


一、Apache服务器监控

为什么要用到服务监控?

在Linux中监控Apache服务器是非常重要的,原因如下:

  1. 保证服务器稳定性:通过监控Apache服务器,可以及时发现并解决服务器故障、崩溃或其他问题。这可以避免服务器宕机或无法提供正常的服务,确保网站的稳定运行。

  2. 提高性能和响应速度:通过监控Apache服务器的性能指标,如CPU使用率、内存使用率、连接数、请求响应时间等,可以发现性能瓶颈和优化机会。优化服务器的配置和资源分配,可以提高网站的响应速度和用户体验。

  3. 预防安全漏洞和攻击:监控Apache服务器可以帮助发现安全漏洞、异常活动和潜在的攻击。通过监控日志文件、网络流量和异常行为,可以及时采取措施来防止或应对恶意攻击和入侵。

  4. 规划和预测容量:通过监控Apache服务器的负载和资源使用情况,可以了解网站的访问模式和流量趋势。这对于规划服务器的容量和扩展能力非常重要,以满足未来增长的需求。

  5. 管理和维护:监控Apache服务器可以提供有关服务器的详细信息,如版本、模块、配置和运行状态等。这对于服务器的管理、维护和故障排除非常有帮助。

总而言之,监控Apache服务器可以帮助我们了解服务器的状态、性能和安全性,并及时采取相应的措施来保证服务器的稳定运行、提高性能和防止安全问题。这对于网站的可用性、用户体验和业务成功至关重要。

实现Apache服务器监控

在 root 目录下新建一个tomcat_moniter.sh文件并编辑

tomcat_moniter.sh文件内容如下:

#!/bin/bash
# author: 空空bye.
# description: tomcat apache http server# 用于判断tomcat是否启动
port=$(nmap -sT 192.168.181.128 | grep 8080/tcp | grep http | awk '{print $2'})if [ "$port" == "open" ]thenecho "$(date) tomcat is running" >> /tmp/tomcat-access.logelseecho "$(date) tomcat is not running" >> /tmp/tomcat-error.log
fi

$():等同于cmd,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令。l's

  • #!/bin/bash 的作用是:用于指定默认情况下运行指定脚本的解释器。当脚本以 #!/bin/bash 开头时,内核就知道用 /bin/bash 这个可执行文件来解释并运行这个脚本。不同解释器的写法如下:

    #!/bin/sh
    #!/bin/bash
    #!/usr/bin/perl
    #!/usr/bin/tcl
    #!/bin/sed -f
    #!/usr/awk -f

    上边每一个脚本头的行都指定了一个命令解释器,注意:#! 后边给出的路径名必须是正确的,否则将会出现一个错误消息,通常是"Command not found"

  • Nmap:(“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个主机也没有问题。官方网址

  • Nmap有四种基本功能:「端口扫描」、「主机探测」、「服务识别」和「系统识别」。

    Nmap服务安装命令如下:

    yum install - y nmap

    使用Nmap扫描端口如下:

    nmap -sT 192.168.181.128 | grep 8080/tcp | grep http | awk '{print $2'}

列出端口号和协议,状态和服务名称。状态可能是 open(开放的),filtered(被过滤的), closed(关闭的),或者unfiltered(未被过滤的)。

awk '{print $2}'意为取第二个字段输出。

二、数据库备份

为什么要用到数据库备份?

在Linux系统中,使用数据库定时备份有以下几个原因:

  1. 数据安全性:数据库中存储着重要的数据,而数据丢失或损坏可能会对业务运营产生严重影响。通过定时备份数据库,可以保障数据的安全性,一旦发生数据丢失或损坏的情况,可以通过备份数据进行恢复。

  2. 避免人为错误:人为错误是导致数据丢失或损坏的一大原因。通过定时备份数据库,可以避免因人为操作失误而造成的数据丢失,即使出现问题,也可以通过备份进行恢复。

  3. 数据恢复:数据库备份可以提供数据恢复的能力,当数据库发生故障或出现错误时,可以通过备份数据进行恢复,减少业务中断时间,保证业务的连续性。

  4. 数据迁移和复制:定时备份数据库可以方便进行数据迁移和复制。当需要将数据库从一个服务器迁移到另一个服务器时,可以通过备份数据进行快速迁移。同时,备份数据也可以用于在不同的服务器之间进行数据复制,以实现高可用性和负载均衡。

总的来说,数据库定时备份是保障数据安全、避免数据丢失和损坏,以及实现数据恢复、迁移和复制的重要措施之一。

实现数据库备份

/usr/local 目录下创建 moniter 目录并编辑 mysql_backup.sh 

mysql_backup.sh 文件内容如下:

#!/bin/bash
# author: 空空bye.
# description: 用于定时备份数据库
# $(date +%Y%m%d) 获取当前日期
BAK_DIR=/data/db-backup/$(date +%Y%m%d)
DB_NAME="vue"
DB_USER="root"
DB_PWD="1234"
MYSQL_DUMP_CMD=/usr/bin/mysqldump
# $UID 获取当前用户ID,如果不等于0则表示不是root用户
if [ $UID -ne 0 ];thenecho "请使用root用户执行";exit;
fi
# !表示取反,-d表示目录
if [ ! -d $BAK_DIR ];thenmkdir -p $BAK_DIRecho -e "$BAK_DIR 创建成功"
elseecho -e "$BAK_DIR  目录已存在"
fi$MYSQL_DUMP_CMD -u$DB_USER -p$DB_PWD $DB_NAME > $BAK_DIR/$DB_NAME.sql
# 显示最后命令的退出状态,0表示没有错误,其他表示有错误
if [ $? -eq 0 ];thenecho -e "数据库备份成功"
elseecho -e  "数据库备份失败,请检查备份脚本"
fiexit

:文件需修改

DB_NAME="vue"        数据库名称
DB_USER="root"        用户名
DB_PWD="1234"        密码

 编辑mysql_backup.sh完成后,赋予mysql_backup.sh权限并启动

# 赋权
chmod 755 mysql_backup.sh
# 启动
./mysql_backup.sh

数据库备份完成后进入 data/db-backup/20240401/ 目录查看的SQL文件

# 切换目录
cd /data/db-backup/20240401/
# 查看文件后15行
tail -15 vue.sql

三、Shell脚本发送邮件

为什么要用使用Shell脚本发送邮件?

在Linux中使用Shell脚本发送邮件有以下几个原因:

  1. 自动化任务:Shell脚本可以用于自动化执行特定的任务,例如备份数据、检查系统状态等。发送邮件可以帮助管理员及时了解任务的执行情况。

  2. 监控和警报:通过Shell脚本发送邮件可以实现对系统的监控和警报功能。例如,当系统出现异常或达到某种预先设定的阈值时,可以发送邮件给管理员以便及时采取措施。

  3. 定时报告:使用Shell脚本可以定时生成报告,并通过邮件发送给相关人员。这样可以方便地分享系统状态、日志、性能统计等信息。

  4. 通知和通信:Shell脚本可以用于发送通知和通信邮件,例如发送给用户的欢迎邮件、密码重置邮件等。

  5. 执行远程操作:Shell脚本可以通过发送邮件的方式触发远程操作,例如向远程服务器发送命令、执行远程脚本等。

总之,使用Shell脚本发送邮件可以帮助管理员实现自动化、监控、报告和通信等功能,提高系统管理的效率和及时性。

实现Shell脚本发送邮件

使用sendmail发送邮件,如果没有安装,可以使用如下命令先安装

yum install -y sendmail

安装服务之后,请启动服务:

systemctl start sendmail

在 root 目录下新建一个sendmail.sh文件并编辑,文件内容如下:

#!/bin/bash
# author 空空bye.
email_header="Subject: 系统信息\nTo: *******@qq.com"
email="$email_header\ntomcat服务器正常运行,日期:$(date '+%Y-%m-%d %H:%M:%S')"
echo -e "$email" | sendmail -t

注意: -e参数不能丢,否则不会讲\n解析为换行;请修改自己的QQ邮箱

编辑sendmail.sh完成后,赋予sendmail.sh权限并启动 

# 赋权
chmod 755 sendmail.sh
# 启动
./sendmail.sh

发送成功之后,请登录到QQ邮箱并进行以下设置:

  • 点击自助查询
  • 点击收件查询,将发送的邮件添加到白名单中

 最后展示效果如下:

查看sendmail日志的命令:  

tail -f /var/log/maillog

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型日报20240401

大模型实时打《街霸》捉对PK,GPT-4居然不敌3.5,新型Benchmark火了 链接:https://news.miracleplus.com/share_link/22340 让大模型直接操纵格斗游戏《街霸》里的角色,捉对PK,谁更能打?GitHub上一种你没有见…

Windows下配置及使用Git+rsync构建文件同步工具

背景(了解): 公司的前端项目里有bash脚本,开发人员在开发完,可以跑bash脚本自动发布部署到测试环境。但是windows是没办法直接跑bash脚本的,最便捷的做法就是借用git bash这个终端来跑项目里的bash脚本。但是windows的源里并没有…

conda使用记录

linux 使用conda创建新一个新的python环境过程 conda create -n recommendation_env python3.8.18 # 指定python版本 conda env list # 查看所有的环境 conda activate recommendation_env # 激活创建的新环境 pip install flask # 安装依赖 或者 pip install flask版本号 或者…

Python+requests+Pytest+logging+allure+pymysql框架详解

一、框架目录结构 1)tools目录用来放公共方法存储,如发送接口以及读取测试数据的方法,响应断言 数据库断言 前置sql等方法;2)datas目录用例存储接口用例的测试数据,我是用excel来存储的数据,文…

简单说清楚什么是SQL Injection?

最近看完了《The Pragmatic Programmer: 20th Anniversary Edition, 2nd Edition: Your Journey to Mastery》,在第7章:While You Are Coding的footnotes中,提到了一幅漫画: 这不仅用简单的方式说清楚了什么是SQL Injection&#…

顶顶通呼叫中心中间件-声音编码自适应配置方法(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-声音编码自适应配置方法讲解(mod_cti基于FreeSWITCH) 声音编码自适应介绍 声音编码自适应,通常在语音通信和音频处理领域中指的是一种能够根据信号特性和传输环境自动调整编码参数的技术。其目的是在不同的网络状况和音质要求下,…

uniapp开发App(一)登陆流程 判断是否登陆,是,进入首页,否,跳转到登录页

一、登陆流程 文字描述:用户进入App,之后就是判断该App是否有用户登陆过,如果有,直接进入首页,否则跳转到登陆页,登陆成功后,进入首页。 流程图如下: 二、在uniapp项目中代码实现 实…

【数据结构】AVL 树

文章目录 1. AVL 树的概念2. AVL 树节点的定义3. AVL 树的插入4. AVL 树的旋转5. AVL 树的验证6. AVL 树的删除7. AVL 树的性能 前面对 map / multimap / set / multiset 进行了简单的介绍【C】map & set,在其文档介绍中发现,这几个容器有个共同点是…

oracle19c安装-aarch64

建议 参考oracle官方文档提供的软硬件要求 https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/operating-system-checklist-for-oracle-database-installation-on-linux.html#GUID-E5C0A90E-7750-45D9-A8BC-C7319ED934F0 建议使用OracleLinux8.6及以上操作…

RWKV_Pytorch:支持多硬件适配的开源大语言模型推理框架

亲爱的技术探索者们,今天我要向大家隆重推荐一个在开源社区中崭露头角的项目——RWKV_Pytorch。这是一个基于Pytorch的RWKV大语言模型推理框架,它不仅具备高效的原生Pytorch实现,而且还扩展了对多种硬件的适配支持,让模型的部署和…

Django创建多app应用

目录 1. 引言 2. 多app创建的两种方式 2.1 多个app结构 2.2 单个apps多个app 3. 最后 1. 引言 在平常业务开发中,我们遇到的功能可能会有很多,单个app的应用可能无法满足我们 这个时候,我们就需要多app应用,例如&#xff1a…

docker 部署 gitlab-ce 16.9.1

文章目录 [toc]拉取 gitlab-ce 镜像创建 gitlab-ce 持久化目录启停脚本配置配置 gitlab-ce编辑 gitlab-ce 配置文件重启 gitlab-ce配置 root 密码 设置中文 gitlab/gitlab-ce(需要科学上网) 拉取 gitlab-ce 镜像 docker pull gitlab/gitlab-ce:16.9.1-ce.0查看镜像是不是有 Vo…

docker容器添加新端口映射的步骤及`wsl$`目录的作用

在Docker容器已经创建后,需要添加新的端口映射,即对已经存在的Docker容器添加新的端口映射,可以通过以下步骤来添加,即通过修改配置文件的方法。 如何新增端口映射? 查找容器的hash值 docker inspect [容器id或名称…

Rust 机器学习图形库 petgraph

一、介绍 Petgraph 是一个开源的图数据结构库,提供了非常丰富的图形类型和算法,并且支持将图形以 Graphviz 格式输出,还允许你为图的节点和边赋予任意类型的数据,从而能够灵活地处理和表示复杂的数据关系。 Petgraph 支持边的方…

【threejs】较大物体或shape的贴图较小问题处理方法

问题 有的场景内相对体型差距过大的物体(如山地 海洋等)由于尺寸问题,加载贴图过于小,同时shader也无法完全展示,如图 我们可以获取物体的uv,进行缩放使得贴图可以完全展开 如果uv是乱的 可以用xyz坐标最…

【新手适用】手把手教你从零开始实现一个基于Pytorch的卷积神经网络CNN二: 如何训练模型,内附详细损失、准确率、均值计算

手把手教你从零开始实现一个基于Pytorch的卷积神经网络CNN(新手适用)一: model.py:创建模块-CSDN博客 从零开始实现一个基于Pytorch的卷积神经网络 - 知乎 目录 1 设备device定义 2 训练模型定义 3 开始训练 3.1 step、batch…

使用filezilla连接Ubuntu22.04虚拟机

获取电脑IP和虚拟机IP ① 在windows下ctrlR再输入cmd,打开指令窗口,输入 ipconfig 虚拟机连接电脑用的是NAT模式,故看VMnet8的IP地址 ② 查看虚拟机IP地址 终端输入 ifconfig 如果没安装,按提示安装net-tools sudo apt install …

物联网学习2、MQTT 发布/订阅模式介绍

MQTT 发布/订阅模式 发布订阅模式(Publish-Subscribe Pattern)是一种消息传递模式,它将发送消息的客户端(发布者)与接收消息的客户端(订阅者)解耦,使得两者不需要建立直接的联系也不…

使用CMake搭建简单的Qt程序

目录结构 代码 CMakeLists.txt: cmake_minimum_required(VERSION 3.15)set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON)# set the project name project(xxx)# 设置Qt的路径 # 例如 E:/Qt/Qt/aaa/msvc2019_64 # aaa 为Qt的版本号 set(QT_PATH…

【工具-MATLAB】

MATLAB ■ MATLAB-简介■ MATLAB-应用领域■ MATLAB■ MATLAB■ MATLAB■ MATLAB ■ MATLAB-简介 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室) 美国MathWorks公司出品的商业数学软件, MATLAB和Mathematica、Maple并…