百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

14天shell脚本入门学习-第十三天#日志分析

off999 2025-03-24 19:14 36 浏览 0 评论

日志分析与报告生成是系统管理和运维中的重要任务,能够帮助识别问题、优化性能并生成统计报告。通过编写 Shell 脚本,可以自动化完成日志分析、提取关键信息并生成报告。以下是一个日志分析与报告生成的实战项目示例。


1. 项目需求

假设我们有一个 Web 服务器的访问日志文件(access.log),需要实现以下任务: 1. 分析日志文件,统计访问量、状态码分布、热门页面等。 2. 生成报告文件,包含统计结果。 3. 支持定期运行并发送报告。


2. 日志文件格式

假设日志文件格式如下(Nginx 默认格式):

192.168.1.1 - - [10/Oct/2023:14:30:01 +0000] "GET /index.html HTTP/1.1" 200 1024
192.168.1.2 - - [10/Oct/2023:14:30:02 +0000] "GET /about.html HTTP/1.1" 404 512

3. 脚本设计

3.1 脚本功能

  • 统计访问量:统计总访问量。
  • 状态码分布:统计不同 HTTP 状态码的出现次数。
  • 热门页面:统计访问量最高的页面。
  • 生成报告:将统计结果写入报告文件。

3.2 脚本结构

#!/bin/bash
# 日志分析与报告生成脚本

# 配置
LOG_FILE="/var/log/nginx/access.log"
REPORT_FILE="/var/log/nginx/access_report.txt"
TOP_PAGES=5

# 函数定义
function analyze_log() {
    echo "Analyzing log file: $LOG_FILE..."

# 统计总访问量
total_visits=$(wc -l < log_file echo total visits: total_visits> "$REPORT_FILE"

# 统计状态码分布
echo -e "\nStatus code distribution:" >> "$REPORT_FILE"
awk '{print $9}' "$LOG_FILE" | sort | uniq -c | sort -nr >> "$REPORT_FILE"

# 统计热门页面
echo -e "\nTop $TOP_PAGES most visited pages:" >> "$REPORT_FILE"
awk '{print $7}' "$LOG_FILE" | sort | uniq -c | sort -nr | head -n "$TOP_PAGES" >> "$REPORT_FILE"
}

# 主逻辑
analyze_log

echo "Report generated: $REPORT_FILE"

4. 脚本说明

4.1 配置部分

  • LOG_FILE:日志文件路径。
  • REPORT_FILE:报告文件路径。
  • TOP_PAGES:热门页面的数量。

4.2 函数定义

  • analyze_log:分析日志文件并生成报告。

4.3 主逻辑

调用 analyze_log 函数完成日志分析并生成报告。


5. 使用说明

5.1 准备工作

  1. 确保日志文件存在并具有可读权限。
  2. 将脚本保存为 log_analyzer.sh,并赋予执行权限:
chmod +x log_analyzer.sh

5.2 运行脚本

运行脚本:

./log_analyzer.sh

5.3 查看报告

报告文件将生成在
/var/log/nginx/access_report.txt
,内容如下:

Total visits: 1000

Status code distribution:
    800 200
    150 404
    50 500

Top 5 most visited pages:
    300 /index.html
    200 /about.html
    100 /contact.html
    50 /products.html
    30 /blog.html

6. 扩展功能

6.1 定期运行

使用 cron 定期运行脚本并发送报告: 1. 编辑 cron 任务:

crontab -e
  1. 添加以下内容(每天凌晨 2 点运行):
0 2 * * * /path/to/log_analyzer.sh

6.2 发送报告

使用 mail 命令将报告发送到邮箱:

mail -s "Access Log Report" user@example.com < "$REPORT_FILE"

6.3 错误处理

添加错误处理逻辑,确保脚本在出错时退出:

set -e  # 任何命令失败时退出脚本

6.4 日志轮转

结合 logrotate 管理日志文件,避免日志文件过大: 1. 创建 logrotate 配置文件:

sudo nano /etc/logrotate.d/nginx
  1. 添加以下内容:
/var/log/nginx/access.log {
   daily
   rotate 7
   compress
   missingok
   notifempty
   create 0640 www-data adm
   postrotate
       /usr/sbin/nginx -s reload
   endscript
}

7. 总结

  • 日志分析与报告生成是系统管理和运维中的重要任务。
  • 通过 Shell 脚本可以自动化完成日志分析、提取关键信息并生成报告。
  • 结合 cronmail 可以实现定期运行和报告发送。
  • 脚本应具备良好的错误处理和日志轮转功能,确保系统的稳定性和可靠性。

相关推荐

u盘启动不了怎么回事(u盘启动也启动不了)

原因三:USB传输性能不佳导致;解决三:换个USB插口试试,建议将u盘插入到电脑机箱后置的USB插口处。原因四:u盘自身的质量问题导致;解决四:换一个u盘制作试一试。原因五:电脑系统问题导致;解决五:...

联想笔记本电脑键盘输入没反应

1.首先在可以进行输入的位置,长按下某个按键1秒以上,看看有没有反应。有反应看第2,没反应看第3。2.控制面板~轻松使用~轻松使用设置中心~更改键盘的工作方式~取消筛选键并应用即可。3.打开设备管理器...

软件管家电脑版下载官网(软件管家电脑版下载官网安装)

要下载和安装应用程序,您可以按照以下步骤使用电脑管家:1.打开电脑管家应用程序。2.在主界面上,您可以找到一个名为“应用中心”的选项,点击它。3.在应用中心中,您可以浏览各种应用程序的列表。您可...

台式电脑怎么取消定时关机(台式电脑设置自动关机怎么取消)

电脑设置了每天定时关机,取消的方法有多种,以下提供三种方式:方法一:打开任务计划程序(TaskScheduler)。找到“任务计划程序库”(TaskSchedulerLibrary),找到设置的...

win7怎么截屏快捷键(win7怎样截屏快捷键)

在Win7系统中,自带的截图快捷键是“PrtScn”键,即PrintScreen键。按下这个键后,系统会将当前屏幕的内容复制到剪贴板中,然后用户可以将其粘贴到其他应用程序中进行编辑或保存。此外,Wi...

如何查看笔记本配置(如何查看笔记本配置高低)

两种方法一种你在笔记本背面有个ID号,也就是序列号,你把它抄下来,输到笔记本品牌的官网上,查看他的配置就可以,这是第1种方法,第2种方法,你开机后,我的电脑上单击右键,点属性,就会在出来你的CPU内存...

linux软件(linux软件图标)

Linux是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放...

hp laserjet p1108打印机驱动

惠普LaserJetProP1108打印机安装打印机驱动的方法,可以通过以下步骤操作来实现:1、运行驱动安装包,在“HPLaserJetProP1100打印机系列”下,点击“USB安装...

台式机最好的配置(台式机最强配置)

家用台式电脑cpu一般选择英特尔8-10代的i3就能满足正常的家用,内存方面选择16g,绝对够用,再选择一块512g的固态硬盘,保证电脑的速度2022年台式电脑建议你可以配16gb或32gb的内存。硬...

笔记本电脑home键在哪(笔记本的home键怎么用)

home键位置一般有三个:一、键就在键盘最右边一列的上方,也是右上角处。二、在数字键盘的“7”键上,如果想使用"home"键功能,需要先关闭数字键功能。一般笔记本开、关数字键功能是按F...

win7汉化包下载(win7系统汉化)

要下载犀牛7grasshopper汉化包,首先你需要从官方网站或可靠的第三方网站上找到可信赖的下载链接。然后,点击链接进行下载,并确保你的电脑设备有足够的存储空间来安装这个汉化包。安装完成后,打开犀牛...

ghost系统备份与恢复的详细步骤

还原系统步骤。1、电脑开机进入ghost,这里注意如果是通过U盘启动盘进入,注意先进入bios把第一启动项设置为当前的U盘;如果是通过自身电脑硬盘启动,建议先把ghost系统安装好。2、点击确定,然后...

photoshop官方下载电脑版(ps软件官方下载中文版电脑版)

鼠标右键点击压缩包,点击解压到文件夹按钮。打开文件夹,点击安装文件。弹出安装对话框,点击默认位置。更改安装路径,点击确认按钮。等待安装完成,双击打开ps快捷方式即可。目前在电脑上免费下载PS是不太可能...

2025最火电脑壁纸(2025最火电脑壁纸全屏)

要更改MacBookPro2022的壁纸,可以按照以下步骤操作:首先,点击桌面上的空白区域,然后选择“更改桌面背景”选项。接着,从预设的壁纸中选择一个或者点击“+”号添加自己的图片。如果需要更改壁...

安装系统安装包(系统安装包里的安装文件在哪)

oppocoloros13具体的下载方法如下,第一步,手机打开OPPO官方网站服务中心,登录手机账号。第二步,找到coloroS13升级包,点击安全下载,将coloroS13系统升级软件包...

取消回复欢迎 发表评论: