Linux如何实现自动化日志巡检_Linux日志巡检脚本

发布时间 - 2025-12-01 00:00:00    点击率:
通过编写Shell脚本可实现Linux日志自动化巡检,1. 聚焦系统错误、认证失败、服务重启及内存磁盘告警等关键信息;2. 使用grep提取/var/log/messages和secure等文件中的异常记录;3. 将结果输出至临时文件并支持邮件通知与定时任务,提升运维效率。

在Linux系统运维中,日志巡检是发现问题、排查故障的重要手段。手动查看日志费时费力,通过编写自动化脚本可以高效完成日志巡检任务。下面介绍如何实现一个实用的Linux日志巡检脚本。

明确巡检目标

日志巡检不是盲目地读取所有内容,而是聚焦关键信息。常见巡检目标包括:

  • 系统错误日志:如/var/log/messages、/var/log/syslog 中的 ERROR、CRITICAL 关键字
  • 认证失败记录:/var/log/secure 或 /var/log/auth.log 中的 Failed password、Invalid user
  • 服务异常重启:特定服务(如nginx、mysql)日志中的启动或崩溃信息
  • 磁盘或内存告警:日志中出现 Out of memory、disk full 等提示

确定目标后,脚本可以有针对性地提取和分析这些信息。

编写基础巡检脚本

以下是一个简单的Shell脚本示例,实现基本的日志巡检功能:

!/bin/bash

日志巡检脚本

LOG_DIR="/var/log"
OUTPUT="/tmp/logcheck$(date +%Y%m%d).txt"

echo "开始日志巡检: $(date)" > $OUTPUT
echo "================================" >> $OUTPUT

检查系统日志中的错误

echo "【系统错误】" >> $OUTPUT
grep -i -E "error|fail|critical|warning" $LOG_DIR/messages 2>/dev/null | tail -20 >> $OUTPUT

检查登录认证失败

echo -e "\n【登录失败】" >> $OUTPUT
grep -i "Failed password" $LOG_DIR/secure 2>/dev/null | awk '{print $1,$2,$3,$9,$11}' | tail -20 >> $OUTPUT

检查是否有oom-killer记录

echo -e "\n【内存溢出】" >> $OUTPUT
grep -i "out of memory" $LOG_DIR/messages 2>/dev/null >> $OUTPUT

输出完成提示

echo -e "\n巡检完成,结果保存至: $OUTPUT"

将上述内容保存为 log_check.sh,赋予执行权限:
chmod +x log_check.sh,然后运行即可生成巡检报告。

增强脚本实用性

为了让脚本更贴近实际使用,可加入以下改进:

  • 邮件通知:通过 mail 命令将结果发送给管理员
    mail -s "日志巡检报告" admin@company.com
  • 定时执行:使用 crontab 每天自动运行
    0 8 * * * /path/to/log_check.sh (每天上午8点执行)
  • 高亮关键词:用 sed 或 echo 配合颜色输出,便于识别
  • 支持多日志路径:根据发行版判断日志位置(如Ubuntu用syslog,CentOS用messages)

注意事项

编写和运行日志巡检脚本时需注意:

  • 确保脚本以 root 或具备日志读取权限的用户运行
  • 避免频繁扫描大文件,影响系统性能
  • 敏感信息(如IP、用户名)可在输出前脱敏处理
  • 定期清理临时输出文件,防止占用空间

基本上就这些。一个简单有效的日志巡检脚本不需要复杂逻辑,关键是稳定、可读、可持续运行。结合系统 cron 和邮件提醒,就能实现基础的自动化巡检能力。不复杂但容易忽略。


# mysql  # linux  # word  # centos  # nginx  # ubuntu  # ai  # linux系统  # shell脚本  # bash  # echo  # print  # NULL  # date  # mail  # Error  # var  # 自动化  # 关键词  # 重启  # 是一个  # 就能  # 不需要  # 可在  # 所有内容  # 如何实现  # 多日  # 保存为 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android okhttputils现在进度显示实例代码  如何在建站主机中优化服务器配置?  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  Laravel如何自定义分页视图?(Pagination示例)  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  如何为不同团队 ID 动态生成多个非值班状态按钮  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  如何在IIS7中新建站点?详细步骤解析  如何在腾讯云服务器快速搭建个人网站?  linux写shell需要注意的问题(必看)  php 三元运算符实例详细介绍  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  详解Oracle修改字段类型方法总结  Laravel怎么实现验证码(Captcha)功能  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  浅析上传头像示例及其注意事项  JavaScript Ajax实现异步通信  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  java中使用zxing批量生成二维码立牌  如何快速搭建个人网站并优化SEO?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Laravel怎么在Controller之外的地方验证数据  中国移动官方网站首页入口 中国移动官网网页登录  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  详解Android——蓝牙技术 带你实现终端间数据传输  Laravel如何使用Sanctum进行API认证?(SPA实战)  Laravel PHP版本要求一览_Laravel各版本环境要求对照  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  Linux系统命令中screen命令详解  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  如何快速搭建安全的FTP站点?  如何获取上海专业网站定制建站电话?  JS中对数组元素进行增删改移的方法总结  Python并发异常传播_错误处理解析【教程】  如何快速建站并高效导出源代码?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  Python3.6正式版新特性预览  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体