民工心事 发表于 2024-6-15 01:46:01

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

https://img-blog.csdnimg.cn/direct/618cbf57985140a3989227d0af74622b.png
目录
 一、Apache服务器监控
为什么要用到服务监控?
实现Apache服务器监控
二、数据库备份
为什么要用到数据库备份?
实现数据库备份
三、Shell脚本发送邮件
为什么要用利用Shell脚本发送邮件?
实现Shell脚本发送邮件

一、Apache服务器监控

为什么要用到服务监控?

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

[*] 包管服务器稳定性:通过监控Apache服务器,可以及时发现并解决服务器故障、崩溃或其他问题。这可以避免服务器宕机或无法提供正常的服务,确保网站的稳定运行。
[*] 进步性能和响应速度:通过监控Apache服务器的性能指标,如CPU利用率、内存利用率、连接数、哀求响应时间等,可以发现性能瓶颈和优化机会。优化服务器的设置和资源分配,可以进步网站的响应速度和用户体验。
[*] 防备安全漏洞和攻击:监控Apache服务器可以帮助发现安全漏洞、非常活动和潜在的攻击。通过监控日记文件、网络流量和非常行为,可以及时采取措施来防止或应对恶意攻击和入侵。
[*] 规划和预测容量:通过监控Apache服务器的负载和资源利用环境,可以相识网站的访问模式和流量趋势。这对于规划服务器的容量和扩展能力非常重要,以满足未来增长的需求。
[*] 管理和维护:监控Apache服务器可以提供有关服务器的详细信息,如版本、模块、设置和运行状态等。这对于服务器的管理、维护和故障清除非常有帮助。
总而言之,监控Apache服务器可以帮助我们相识服务器的状态、性能和安全性,并及时采取相应的措施来包管服务器的稳定运行、进步性能和防止安全问题。这对于网站的可用性、用户体验和业务成功至关重要。
实现Apache服务器监控

在 root 目录下新建一个tomcat_moniter.sh文件并编辑
https://img-blog.csdnimg.cn/direct/e67a1970ef004ec7a388c3b777b6ff94.png
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 https://img-blog.csdnimg.cn/direct/5d9d452e4cc74090920bd3c2d1c88081.png
   $():等同于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'}
https://img-blog.csdnimg.cn/direct/9ad29d71736b4a18a4635ecb1273af31.png
列出端口号和协议,状态和服务名称。状态大概是 open(开放的),filtered(被过滤的), closed(关闭的),或者unfiltered(未被过滤的)。
awk '{print $2}'意为取第二个字段输出。
二、数据库备份

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

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

[*] 数据安全性:数据库中存储偏重要的数据,而数据丢失或损坏大概会对业务运营产生严重影响。通过定时备份数据库,可以保障数据的安全性,一旦发生数据丢失或损坏的环境,可以通过备份数据进行规复。
[*] 避免人为错误:人为错误是导致数据丢失或损坏的一大原因。通过定时备份数据库,可以避免因人为操作失误而造成的数据丢失,即使出现问题,也可以通过备份进行规复。
[*] 数据规复:数据库备份可以提供数据规复的能力,当数据库发生故障或出现错误时,可以通过备份数据进行规复,淘汰业务停止时间,包管业务的连续性。
[*] 数据迁徙和复制:定时备份数据库可以方便进行数据迁徙和复制。当需要将数据库从一个服务器迁徙到另一个服务器时,可以通过备份数据进行快速迁徙。同时,备份数据也可以用于在差别的服务器之间进行数据复制,以实现高可用性和负载均衡。
总的来说,数据库定时备份是保障数据安全、避免数据丢失和损坏,以及实现数据规复、迁徙和复制的重要措施之一。
实现数据库备份

在 /usr/local 目录下创建 moniter 目录并编辑 mysql_backup.sh 
https://img-blog.csdnimg.cn/direct/666b386090c74657a0c8f0c5cc688ea5.png
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 https://img-blog.csdnimg.cn/direct/907cbf0fa7f74a18bc4cbdcb97ce5889.png
数据库备份完成后进入 data/db-backup/20240401/ 目录查看的SQL文件
# 切换目录
cd /data/db-backup/20240401/
# 查看文件后15行
tail -15 vue.sql https://img-blog.csdnimg.cn/direct/acec6d45d38f4332af99137faa358f9f.png
三、Shell脚本发送邮件

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

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

[*] 主动化任务:Shell脚本可以用于主动化实行特定的任务,例如备份数据、检查体系状态等。发送邮件可以帮助管理员及时相识任务的实行环境。
[*] 监控和警报:通过Shell脚本发送邮件可以实现对体系的监控和警报功能。例如,当体系出现非常或达到某种预先设定的阈值时,可以发送邮件给管理员以便及时采取措施。
[*] 定时报告:利用Shell脚本可以定时生成报告,并通过邮件发送给相关职员。这样可以方便地分享体系状态、日记、性能统计等信息。
[*] 通知和通讯:Shell脚本可以用于发送通知和通讯邮件,例如发送给用户的欢迎邮件、密码重置邮件等。
[*] 实行远程操作: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 https://img-blog.csdnimg.cn/direct/f71cf0fe4fd74bb7aacb0c9cf9fb6a3c.png
   注意: -e参数不能丢,否则不会讲\n解析为换行;请修改自己的QQ邮箱
编辑sendmail.sh完成后,赋予sendmail.sh权限并启动 
# 赋权
chmod 755 sendmail.sh
# 启动
./sendmail.sh 发送成功之后,请登录到QQ邮箱并进行以下设置:


[*]点击自助查询https://img-blog.csdnimg.cn/direct/2a4042062fff4acc91e7a0fca19c0e80.png
[*]点击收件查询,将发送的邮件添加到白名单中 https://img-blog.csdnimg.cn/direct/682670bb44994882879dd2cc06dc348a.png
 最后展示效果如下:
https://img-blog.csdnimg.cn/direct/eb51dce10efb4589a7dc7b78f5fff5db.png
查看sendmail日记的命令:  
tail -f /var/log/maillog https://img-blog.csdnimg.cn/direct/d3ccea6b6ffe499aa9a640f39fcd35cf.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Linux之实现Apache服务器监控、数据库定时备份及通过利用Shell脚本发送邮件