当前位置: 首页> 科技> 互联网 > 什么是网络营销传播_android基础入门教程_网页制作成品模板网站_小程序生成平台系统

什么是网络营销传播_android基础入门教程_网页制作成品模板网站_小程序生成平台系统

时间:2025/7/15 1:00:31来源:https://blog.csdn.net/JineD/article/details/144727724 浏览次数:1次
什么是网络营销传播_android基础入门教程_网页制作成品模板网站_小程序生成平台系统

1.日志监控基础

  • 监控文件变化

    • tail -f:实时查看文件末尾的变化。

    • tail -n:指定查看最近的 N 行。

  • 结合管道过滤关键内容

    • 配合grep 提取特定关键字。

例子

tail -f /var/log/syslog | grep "error"

2.日志文件滚动

  • 了解日志文件的滚动机制(如日志按大小或时间切割)。

  • 使用logrotate 进行日志管理。

3.实时报警机制

  • 结合awk 提取特定模式并触发报警。

  • 邮件报警

    • 使用mail 或sendmail 命令发送邮件。

  • 终端提示

    • 使用echo 和notify-send

例子

tail -f application.log | awk '/ERROR/ {print "Error detected: "$0}'

4.复杂监控场景

  • 多关键字匹配与分级报警。

  • 监控多文件并聚合结果。


实验例子

实验 1: 简单日志监控

目标:实时监控一个日志文件并提取含有 "ERROR" 的行。

实验代码

#!/bin/bashlogfile="application.log"if [[ ! -f $logfile ]]; thenecho "Log file not found: $logfile"exit 1
fiecho "Monitoring $logfile for 'ERROR'..."
tail -f $logfile | grep "ERROR"

实验 2: 动态监控日志并发送报警

目标:检测日志文件中的错误信息,并在终端显示报警。

实验代码

#!/bin/bashlogfile="application.log"if [[ ! -f $logfile ]]; thenecho "Log file not found: $logfile"exit 1
fimonitor_log() {tail -f $logfile | while read line; doif echo "$line" | grep -q "ERROR"; thenecho "[ALERT] $(date): $line"fidone
}monitor_log

实验 3: 日志关键字分级报警

目标:根据日志内容分类报警,如 "ERROR" 触发高优先级报警,"WARNING" 触发普通报警。

实验代码

#!/bin/bashlogfile="application.log"if [[ ! -f $logfile ]]; thenecho "Log file not found: $logfile"exit 1
fitail -f $logfile | while read line; doif echo "$line" | grep -q "ERROR"; thenecho "[HIGH PRIORITY ALERT] $(date): $line"elif echo "$line" | grep -q "WARNING"; thenecho "[Warning] $(date): $line"fi
done

实验 4: 监控多日志文件

目标:同时监控多个日志文件,并合并结果。

实验代码

#!/bin/bashlogfiles=("/var/log/syslog" "/var/log/auth.log")for logfile in "${logfiles[@]}"; doif [[ -f $logfile ]]; thentail -f $logfile | awk -v log=$logfile '{print "["log"] "$0}' &elseecho "File not found: $logfile"fi
donewait

实验 5: 定制报警系统

目标:基于日志信息发送邮件通知。

实验代码

#!/bin/bashlogfile="application.log"
email="admin@example.com"if [[ ! -f $logfile ]]; thenecho "Log file not found: $logfile"exit 1
fitail -f $logfile | while read line; doif echo "$line" | grep -q "CRITICAL"; thenecho "Critical alert detected: $line" | mail -s "Critical Alert" $emailecho "Email sent for alert: $line"fi
done

实操

  • 编写脚本监控/var/log/syslog,提取含有 "Failed" 的行并统计次数。

#!/bin/bashlogfile="/var/log/syslog"
count=0if [[ ! -f $logfile ]]; thenecho "Log file not found: $logfile"exit 1
fiecho "Monitoring $logfile for 'Failed'..."tail -f $logfile | while read line; doif echo "$line" | grep -q "Failed"; thencount=$((count + 1))echo "$line"echo "Total 'Failed' entries: $count"fi
done
  • 实现一个脚本监控指定文件夹的文件增长情况。

#!/bin/bashmonitor_dir="/path/to/your/directory"if [[ ! -d $monitor_dir ]]; thenecho "Directory not found: $monitor_dir"exit 1
fiecho "Monitoring file changes in $monitor_dir..."
prev_count=$(ls "$monitor_dir" | wc -l)while true; docurrent_count=$(ls "$monitor_dir" | wc -l)if [[ $current_count -ne $prev_count ]]; thenecho "$(date): File count changed from $prev_count to $current_count"prev_count=$current_countfisleep 2
done
  • 将实验 3 的代码改进,支持通过配置文件指定关键字和报警级别。

#!/bin/bashlogfile="application.log"
config_file="keywords.conf"if [[ ! -f $logfile ]]; thenecho "Log file not found: $logfile"exit 1
fiif [[ ! -f $config_file ]]; thenecho "Config file not found: $config_file"exit 1
fideclare -A keywordswhile IFS=: read -r keyword level; dokeywords["$keyword"]=$level
done < "$config_file"tail -f $logfile | while read line; dofor keyword in "${!keywords[@]}"; doif echo "$line" | grep -q "$keyword"; thenecho "[${keywords[$keyword]} PRIORITY] $(date): $line"fidone
done
  • 使用tail -f 和awk 实现实时日志监控,统计日志中每分钟的访问次数。

#!/bin/bashlogfile="access.log"
if [[ ! -f $logfile ]]; thenecho "Log file not found: $logfile"exit 1
fiecho "Monitoring $logfile for access counts per minute..."tail -f $logfile | awk '
{timestamp = substr($4, 2, 17)  # 提取时间戳,格式化为 "dd/MMM/yyyy:HH:mm"split(timestamp, time_parts, ":")minute = time_parts[1] ":" time_parts[2]  # 仅保留到分钟access_counts[minute]++print "Access count for " minute ": " access_counts[minute]
}'
  • 编写脚本实现对超过指定大小的日志文件进行自动归档和压缩。

#!/bin/bashlogfile="application.log"
max_size=1048576  # 1 MB in bytes
archive_dir="archives"mkdir -p "$archive_dir"while true; doif [[ -f $logfile ]]; thenlog_size=$(stat -c%s "$logfile")if (( log_size > max_size )); thentimestamp=$(date +'%Y%m%d_%H%M%S')mv "$logfile" "$archive_dir/application_$timestamp.log"gzip "$archive_dir/application_$timestamp.log"echo "Archived and compressed $logfile at $timestamp"> "$logfile"  # 清空原日志文件fifisleep 10
done

关键字:什么是网络营销传播_android基础入门教程_网页制作成品模板网站_小程序生成平台系统

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: