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 对象到结构体

