监控脚本 -- 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的权限。
努力生活,融于自然