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" ]
        then
                echo "$(date) tomcat is running" >> /tmp/tomcat-access.log
        else
                echo "$(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 ];then
        echo "请使用root用户执行";
        exit;
fi
# !表示取反,-d表示目录
if [ ! -d $BAK_DIR ];then
        mkdir -p $BAK_DIR
        echo -e "$BAK_DIR 创建成功"
else
        echo -e "$BAK_DIR  目录已存在"
fi

$MYSQL_DUMP_CMD -u$DB_USER -p$DB_PWD $DB_NAME > $BAK_DIR/$DB_NAME.sql
# 显示最后命令的退出状态,0表示没有错误,其他表示有错误
if [ $? -eq 0 ];then
        echo -e "数据库备份成功"
else
        echo -e  "数据库备份失败,请检查备份脚本"
fi

exit

:文件需修改

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mysql故障解析

目录 一、Mysql单实例故障排查 1.故障一 2.故障二 3.故障三 4.故障四 5.故障五 6.故障六 7.故障七 8.故障八 二、Mysql主从故障排查 1.故障一 2.故障二 3.故障三 三、Mysql优化 1.硬件方面 (1)关于CPU (2)关于内…

【技巧】如何解除Excel“打开密码”?

给Excel表格设置“打开密码”,可以保护表格不被他人随意打开,那如果后续不需要保护了,不想每次打开Excel都需要输密码,要怎么去除“打开密码”呢? 今天分享3个方法,最后一个方法记得收藏起来,以…

GWO-CNN-BiLSTM多输入时序预测|灰狼群算法优化的卷积-双向长短期神经网络|Matlab

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编译&…

ssm013小型企业办公自动化系统的设计和开发+vue

小型企业办公自动化系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对小型企业办公信息管理混乱&am…

需要本地后端的真机调试-微信

打开和修改IP改为电脑与手机同一局域网的 不知道这个要不要

GS1-全球分类标准

GS1 GS1是一个中立的全球合作平台,汇集行业领袖、政府、监管机构、学术界和协会,共同开发基于标准的解决方案,以应对数据交换的挑战。我们的规模和影响力——遍布 116 个国家/地区的当地会员组织、超过 200 万家用户公司和每天 100 亿笔交易—…

量化交易入门(三十八)CCI指标Python实现和回测

今天我们先单纯用CCI指标来完成策略的编写,后续我们会改进这个策略,将CCI指标和前面讲到的MACD和RSI相结合来优化,看看我们优化后的效果会不会更好。 一、量化策略 CCI指标在量化交易中的策略: 在以下情况下生成买入信号&#…

easy connect 连接不上网络,本地环境出现异常

环境: Win7 专业版 easy connect 问题描述: easy connect 连接不上网络,本地环境出现异常 解决方案: 1.打开IE的lnternet选项–高级 看看是否勾选了SSL 3.0 TLS1.0,取消(未解决) 2.请先关…

【工具-MATLAB】

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

基于ssm汽车养护管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本汽车养护管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

深度学习算法模型部署

绝大数情况,我们使用网上公开数据集,跑通一个深度学习算法模型,获得了较高的准确率,这样仅停留在仿真阶段,并未考虑算法实际的部署。以下将以故障诊断为例,将深度学习算法模型部署到Android系统&#xff0c…

SwiftUI Swift 显示隐藏系统顶部状态栏

Show me the code // // TestHideSystemTopBar.swift // pandabill // // Created by 朱洪苇 on 2024/4/1. //import SwiftUIstruct TestHideSystemTopBar: View {State private var isStatusBarHidden falsevar body: some View {Button {withAnimation {self.isStatusBa…

数字化生活的引擎:探索Facebook如何影响我们的日常生活

在当今数字化时代,社交媒体平台已经成为人们日常生活中不可或缺的一部分,而Facebook作为最具影响力和用户数量的社交网络之一,深刻地改变了我们的生活方式和社交行为。本文将深入探讨Facebook如何影响我们的日常生活,以及它在数字…

火鸟门户拖拽专题可视拖拽面板快速创建网站,无需懂代码,形式灵活,功能强大

可视化拖拉面板简介 可视化拖拽面板是一种消耗代码即可创建网站的工具。它提供了一个分析的界面,用户可以通过拖拽预先设计的组件来构建页面。这种方式可以大大降低网站开发的效率,让不懂代码的人也能轻松创建自己的网站。 可视化拖拉面板的优势 可视…

算法打卡day23

今日任务: 1)39. 组合总和 2)40.组合总和II 3)131.分割回文串 39. 组合总和 题目链接:39. 组合总和 - 力扣(LeetCode) 给定一个无重复元素的数组 candidates 和一个目标数 target ,…

【WEEK6】 【DAY1】DQL查询数据-第一部分【中文版】

2024.4.1 Monday 目录 4.DQL查询数据(重点!)4.1.Data Query Language查询数据语言4.2.SELECT4.2.1.语法4.2.2.实践4.2.2.1.查询字段 SELECT 字段/* FROM 表查询全部的某某查询指定字段 4.2.2.2.给查询结果或者查询的这个表起别名&#xff08…

Linux基础命令篇:Linux文件权限与访问控制基础

Linux文件权限与访问控制基础 下面将详细介绍Linux文件权限管理,帮助有需要的ikun理解和应用这些概念。从基本的权限概念开始,然后介绍如何查看和修改权限。最后,我们整点高级的东西,如访问控制列表(ACL)。…

【THM】Active Reconnaissance(主动侦察)-初级渗透测试

介绍 在网络安全模块的第一个房间里,我们主要进行被动侦察。在第二个房间中,我们重点关注主动侦察以及与之相关的基本工具。我们学习使用网络浏览器来收集有关我们目标的更多信息。此外,我们讨论使用简单的工具(例如ping、traceroute、telnet和 )nc来收集有关网络、系统和…

OpenCV 4.9使用通用内部函数对代码进行矢量化

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV使用通用内部函数对代码进行矢量化 下一篇:OpenCV系列文章目录(持续更新中......) ​ 目标 本教程的目标是提供使用通用内部函数功…

HarmonyOS 应用开发之LifecycleService接口切换LifecycleData接口切换

LifecycleService接口切换 FA模型接口Stage模型接口对应d.ts文件Stage模型对应接口onStart?(): void;ohos.app.ability.ServiceExtensionAbility.d.tsonCreate(want: Want): void;onCommand?(want: Want, startId: number): void;ohos.app.ability.ServiceExtensionAbility.…