网易首页 > 网易号 > 正文 申请入驻

高效运维10个必备日志处理Shell脚本!

0
分享至

在运维工作中,日志处理是一项至关重要的任务,用于监控系统状态、排查故障以及性能调优等。以下是10个Shell脚本示例,可以用于日志处理和分析,但需要根据实际环境进行调整。


1. 实时日志监控与报警脚本 (monitor_log_and_alert.sh

功能:实时监控日志文件,当检测到特定错误关键字时发送报警邮件。

#!/bin/bashLOG_FILE="/path/to/your/logfile.log"KEYWORD="ERROR"EMAIL="admin@example.com"tail-F $LOG_FILE|whileread line;doifecho"$line"| grep -q "$KEYWORD";thenecho"Alert: $line"| mail -s "Error Detected in $LOG_FILE"$EMAILfidone
2. 日志按时间分割脚本 (log_rotate.sh

功能:模拟logrotate功能,每天将旧日志重命名并创建新日志。

#!/bin/bashLOG_FILE="/path/to/your/logfile.log"DATE=$(date+%Y%m%d)# 检查是否存在昨天的日志文件if[!-f "$LOG_FILE.$DATE"];then# 重命名当前日志文件并创建新文件mv"$LOG_FILE""$LOG_FILE.$DATE"touch"$LOG_FILE"echo"Rotated log file to $LOG_FILE.$DATE"fi
3. 异常日志聚合分析脚本 (aggregate_errors.sh

功能:从多个服务器的日志文件中收集错误日志,并聚合分析。

#!/bin/bashSERVERS=("server1""server2""server3")ERROR_DIR="/path/to/error_logs"mkdir-p "$ERROR_DIR"for SERVER in"${SERVERS[@]}";doSSH_CMD="ssh $SERVER 'cat /path/to/logs/error.log'"ERRORS=$(eval$SSH_CMD)echo"$ERRORS"| grep 'ERROR'>>"$ERROR_DIR/${SERVER}_errors.log"done# 可选:进一步分析这些错误日志# ...
4. 日志时间戳转换脚本 (timestamp_convert.sh

功能:将日志文件中的时间戳从UNIX时间戳转换为可读的日期格式。

#!/bin/bashLOG_FILE="/path/to/your/logfile_with_timestamps.log"OUTPUT_FILE="/path/to/converted_log.log"while IFS=read-r line;do# 假设每行的第一个字段是UNIX时间戳TIMESTAMP=$(echo$line|cut-d' '-f1)MESSAGE=$(echo$line|cut-d' '-f2-)HUMAN_READABLE_DATE=$(date-d @"$TIMESTAMP"+"%Y-%m-%d %H:%M:%S")echo"$HUMAN_READABLE_DATE $MESSAGE">>"$OUTPUT_FILE"done< "$LOG_FILE"
5. 日志IP地址统计脚本 (ip_address_statistics.sh

功能:统计日志文件中访问者的IP地址及其出现次数,并排序输出。

#!/bin/bashLOG_FILE="/path/to/your/access.log"# 使用awk处理日志文件,统计每个IP地址的出现次数awk '{print $1}' $LOG_FILE | sort | uniq -c | sort -nr

这个脚本假设日志文件的每行第一个字段是访问者的IP地址。awk命令用于提取每行的第一个字段(即IP地址),然后通过管道传递给sort进行排序,uniq -c用于统计每个IP地址的出现次数,最后再次使用sort -nr进行数值排序并逆序输出。

6. 日志请求类型分析脚本 (request_type_analysis.sh

功能:分析日志文件中不同HTTP请求类型(如GET、POST)的比例。

#!/bin/bashLOG_FILE="/path/to/your/access.log"# 使用awk统计不同请求类型的数量declare-A request_typeswhile IFS=read-r line;domethod=$(echo$line| awk '{print $6}')# 假设请求方法在第六个字段if[["${request_types[$method]}"]];then((request_types[$method]++))elserequest_types[$method]=1fidone<"$LOG_FILE"# 输出统计结果echo"Request Type Statistics:"for method in"${!request_types[@]}";doecho"$method: ${request_types[$method]}"done

这个脚本使用关联数组request_types来统计不同HTTP请求类型的数量。它遍历日志文件,使用awk提取每行的请求方法,并根据请求类型更新关联数组中的计数。最后,脚本遍历关联数组并输出每个请求类型及其对应的数量。

7. 日志响应时间分析脚本 (response_time_analysis.sh

功能:分析日志文件中每个请求的响应时间,并统计不同时间段的请求数量。

#!/bin/bashLOG_FILE="/path/to/your/access.log"# 假设日志中包含响应时间字段,并位于特定位置(例如第10个字段)# 此脚本简单地将响应时间分为几个区间进行统计declare-A response_timesbins=("0-100ms""101-200ms""201-500ms""501-1000ms""1000ms+")while IFS=read-r line;doresponse_time=$(echo$line| awk '{print $10}')# 假设响应时间在第十个字段if(( $(echo"$response_time <= 100"|bc -l)));thenbin="0-100ms"elif(( $(echo"$response_time <= 200"|bc -l)));thenbin="101-200ms"elif(( $(echo"$response_time <= 500"|bc -l)));thenbin="201-500ms"elif(( $(echo"$response_time <= 1000"|bc -l)));thenbin="501-1000ms"elsebin="1000ms+"fi((response_times[$bin]++))done<"$LOG_FILE"echo"Response Time Statistics:"for bin in"${!response_times[@]}";doecho"$bin: ${response_times[$bin]}"done
8. 日志文件内容差异分析脚本 (log_diff_analysis.sh

功能:比较两个日志文件之间的差异,并输出不同之处。

#!/bin/bashLOG_FILE1="/path/to/log1.log"LOG_FILE2="/path/to/log2.log"# 使用diff命令比较两个文件,并忽略空白行的差异diff -B --side-by-side $LOG_FILE1 $LOG_FILE2

这个脚本使用diff命令来比较两个日志文件的内容。--side-by-side选项以并排的方式显示两个文件的差异,-B选项用于忽略行尾尾随的空白差异。

9. 日志中特定用户活动跟踪脚本 (user_activity_tracker.sh

功能:从日志文件中提取特定用户的所有活动记录,并按时间排序。

#!/bin/bashLOG_FILE="/path/to/user_activity.log"USER_NAME="target_user"# 假设日志中的每一行都包含用户名,并可能位于不同位置# 使用awk查找包含特定用户名的行,并输出整行awk -v user="$USER_NAME" '$0 ~ user {print}' $LOG_FILE | sort

这个脚本使用awk来搜索包含特定用户名的行,并通过管道传递给sort命令进行排序。注意,这个脚本假设用户名可能出现在日志行的任何位置,并且简单地匹配整行中是否包含该用户名。根据实际的日志格式,你可能需要调整awk的模式匹配逻辑。

10. 日志文件压缩与备份脚本 (log_compress_and_backup.sh

功能:将日志文件压缩后备份到指定的远程服务器或本地目录。

#!/bin/bashLOG_DIR="/path/to/logs"BACKUP_DIR="/path/to/backup"DATE=$(date+%Y%m%d)BACKUP_FILE="logs_backup_$DATE.tar.gz"# 压缩日志目录tar -czvf $BACKUP_DIR/$BACKUP_FILE$LOG_DIR# 可选:将备份文件复制到远程服务器(使用scp命令)# scp $BACKUP_DIR/$BACKUP_FILE username@remotehost:/path/to/remote/backup/echo "Backup completed: $BACKUP_DIR/$BACKUP_FILE"

这个脚本将指定的日志目录压缩成一个tar.gz文件,并保存到备份目录中。脚本还包含了一个可选的命令,用于将备份文件复制到远程服务器。你需要根据实际的远程服务器地址、用户名和路径来修改scp命令。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
广东3消息!宏远收入罕见暴跌,徐杰又赚外快,亚帅或转任球队顾问

广东3消息!宏远收入罕见暴跌,徐杰又赚外快,亚帅或转任球队顾问

多特体育说
2026-11-06 00:04:42
摊牌了!台海统一不是2027年,也不是2030年!

摊牌了!台海统一不是2027年,也不是2030年!

叶葉夜
2026-11-05 09:41:34
于和伟把“不像”演成“越看越像”,《伟大的长征》收视破3.5%

于和伟把“不像”演成“越看越像”,《伟大的长征》收视破3.5%

子芫伴你成长
2026-11-06 00:05:10
克莱三分准绝杀登全美第一热搜!官方盛赞经久不衰 轰8三分斯波欣慰

克莱三分准绝杀登全美第一热搜!官方盛赞经久不衰 轰8三分斯波欣慰

颜小白的篮球梦
2026-11-05 15:16:44
“美丽废物”卖爆了:2克680元,年轻人一边“骂”一边加价抢

“美丽废物”卖爆了:2克680元,年轻人一边“骂”一边加价抢

天下网商
2026-11-04 15:38:58
“我怕我岳父有生命危险”,广州男子深夜报警求助:他喝了2斤多白酒,又吃了3包阿莫西林;医生:再晚一点送来后果不堪设想

“我怕我岳父有生命危险”,广州男子深夜报警求助:他喝了2斤多白酒,又吃了3包阿莫西林;医生:再晚一点送来后果不堪设想

南方都市报
2026-11-05 08:29:11
家属准备安葬老人时,看到骨殖上有钢钉孔洞,才发现骨灰竟是其他逝者的,殡仪馆承认工作失误,当地:已向家属道歉,并成立工作组调查

家属准备安葬老人时,看到骨殖上有钢钉孔洞,才发现骨灰竟是其他逝者的,殡仪馆承认工作失误,当地:已向家属道歉,并成立工作组调查

山西经济日报
2026-11-05 10:30:44
考研前男生送奶茶,她偷偷扔了:是心眼太多,还是保命要紧?

考研前男生送奶茶,她偷偷扔了:是心眼太多,还是保命要紧?

夜深爱杂谈
2026-11-02 20:09:41
曾是新加坡乒坛一姐,从小在中国长大,今嫁中国富商在北京开学校

曾是新加坡乒坛一姐,从小在中国长大,今嫁中国富商在北京开学校

莫地方
2026-11-06 00:05:16
愤怒,开拓者利拉德对太阳队狄龙试图踩踏他跟腱的行为非常不满

愤怒,开拓者利拉德对太阳队狄龙试图踩踏他跟腱的行为非常不满

好火子
2026-11-05 22:50:08
外媒:“蓝色浪潮”席卷美国,特朗普遭遇“全面否定”

外媒:“蓝色浪潮”席卷美国,特朗普遭遇“全面否定”

中国青年报
2026-11-04 21:38:15
江苏“艾灸大师”范长伟去世,年仅57岁技术高超,死因曝光太可惜

江苏“艾灸大师”范长伟去世,年仅57岁技术高超,死因曝光太可惜

嫹笔牂牂
2026-11-05 07:17:18
许小月任嘉兴市委书记

许小月任嘉兴市委书记

界面新闻
2026-11-05 14:30:46
杨坤自曝患抑郁症20年,“从05年吃药到现在,躯体化反应严重”;首次回应在《歌手》唱歌跑调:因得知父亲骨折后急性惊恐发作

杨坤自曝患抑郁症20年,“从05年吃药到现在,躯体化反应严重”;首次回应在《歌手》唱歌跑调:因得知父亲骨折后急性惊恐发作

洪观新闻
2026-11-05 11:50:54
痛心!延大54岁副教授投湖离世,遗书内容曝光:教了30年钢琴,却栽在一笔15万的经费上

痛心!延大54岁副教授投湖离世,遗书内容曝光:教了30年钢琴,却栽在一笔15万的经费上

子非鱼人
2026-11-04 23:59:51
以色列总统将授组阁权,埃森科特获四党支持,内塔尼亚胡质疑选举

以色列总统将授组阁权,埃森科特获四党支持,内塔尼亚胡质疑选举

快看张同学
2026-11-05 09:34:11
希金斯希望打破排名赛年龄最大夺冠纪录,战常冰玉之前陪妻子买包

希金斯希望打破排名赛年龄最大夺冠纪录,战常冰玉之前陪妻子买包

杨华评论
2026-11-05 22:49:32
特斯拉中国新品上架,这价格真不错啊!

特斯拉中国新品上架,这价格真不错啊!

XCiOS俱乐部
2026-11-05 13:44:34
哈登公开吐槽骑士管理层:我主动降薪留队冲冠,你们连个靠谱内线都舍不得配

哈登公开吐槽骑士管理层:我主动降薪留队冲冠,你们连个靠谱内线都舍不得配

篮球小方
2026-11-04 18:03:40
太狠了!WTT香港总决赛名单更新出炉:新增3名选手,陈熠全勤、朱雨玲一冠托底、张禹珍压哨翻盘,国乒男单仍0人入围

太狠了!WTT香港总决赛名单更新出炉:新增3名选手,陈熠全勤、朱雨玲一冠托底、张禹珍压哨翻盘,国乒男单仍0人入围

篮球热嗖
2026-11-05 08:54:59
2026-11-06 00:43:00
ITPUB学院
ITPUB学院
分享技术干货,了解最新动态
1293文章数 629关注度
往期回顾 全部

科技要闻

一手实测|国产三大Flash模型,谁更能打?

头条要闻

小伙花200万在长沙买14套房 年收租21万成功"退休"

头条要闻

小伙花200万在长沙买14套房 年收租21万成功"退休"

体育要闻

40岁,正是绝杀的年纪!

娱乐要闻

42岁的唐嫣,又上热搜了

财经要闻

市场能接受AI繁荣退潮吗?

汽车要闻

限时置换价15.98万元起 2027款领克08 EM-P上市

态度原创

手机
时尚
教育
健康
数码

手机要闻

OPPO Reno17系列11 月 9 日见,部分规格曝光

从恶女专业户到古装美人,40岁的毛林林杀回来了

教育要闻

炸了啊:KCL正式官宣合并Cranfield,成为KCL第十个学院!

痘痘长到25岁还没完?查查内分泌

数码要闻

首发399元:达音科推出DTC500X电竞声卡,双CS43198旗舰DAC

无障碍浏览 进入关怀版