监控脚本 -- 1分钟前到当前时间内日志文件中错误日志的数量

目的:监控docker运行的容器生成的最新日志文件中,前一分钟到当前时间内,出现already_login字样的日志语句数量

#/bin/sh

emq_log_dir=$(sudo docker inspect elements_emqttd_1 | grep Mounts -A 60 | grep emqx | grep "Source" | awk -F '[:", ]+' '{print $3}')
latest_file=$(ls -lt /$emq_log_dir | grep emqx | head -1 | awk '{print $NF}')
#echo $latest_file
onemin_ago=`date -d "1 minute ago" +"%Y-%m-%d %H:%M:%S"`
now_time=` date +"%Y-%m-%d %H:%M:%S"`

# 输出1分钟前到现在的日志,并筛选出重复登陆的设备个数
num=$(/bin/sed -n "/$onemin_ago/,/$now_time/p" $emq_log_dir/$latest_file | grep "already_login" | awk -F "Client" '{print $2}' | cut -d " " -f 2 | sort -r| uniq | wc -l)


echo $num

注意

1. 需要用sh 执行,用bash的话会报sed错误

2. docker inspect前面要加上sudo,  因为我的系统普通用户没有执行docker inspect的权限。

生命的意义在于奉献, 解决各种问题
原文地址:https://www.cnblogs.com/regit/p/14789759.html