首页 > 其他分享 >sh脚本扫描k8s一批微服务过滤错误日志生成文件

sh脚本扫描k8s一批微服务过滤错误日志生成文件

时间:2023-11-03 17:55:10浏览次数:30  
标签:grep log 扫描 echo sh fi 日志 k8s

sh脚本扫描k8s一批微服务过滤错误日志生成文件,并用vim一次性打开所有日志文件进行错误排查

#!/bin/bash

echo "请输入param参数(多个参数用逗号分隔,默认为admin-center,space,permission,user,project,project-center):"
read param
param=${param:-"admin-center,space,permission,user,project,project-center"}

IFS=',' read -ra params <<< "$param"  # 将参数分割成数组

line="5000"  # 默认的行数5000
env="develop"
grepParam="Exception:|ERROR "

# 使用getopts解析选项参数
while getopts "e:" opt; do
  case $opt in
    e)
      grepParam="$OPTARG"
      ;;
    \?)
      echo "无效的选项: -$OPTARG" >&2
      exit 1
      ;;
  esac
done
# 移除选项参数
shift $((OPTIND-1))

if [ -n "$1" ]; then
  env=$1
fi
echo "环境为: $env"
if [ -n "$2" ]; then
  line=$2
fi
echo "行数为倒数$line行"
if [ -n "$3" ]; then
  grepParam=$3
fi

echo "过滤参数:$grepParam"

rm -rf *.log

for p in "${params[@]}"; do
    (
        echo "扫描${p}-$line行"
        logs=$(kubectl logs --tail $line $(kubectl get pods -n $env | grep $p | grep -v "${p}-center" | grep -v "web2-${p}" | grep -v "web-${p}" | grep -v workspace | awk 'NR==1 {print $1}') -n $env -c $p | grep -B 5 -A 10 -E "${grepParam}")
        if [[ -n $logs ]]; then
            echo "$logs" > "${p}_$(date +'%Y%m%d').log"
            echo "${p}有错误日志:${p}_$(date +'%Y%m%d').log"
        else
            echo "${p}扫描完成"
        fi
    ) &
done

wait

echo "扫描结束"

# 查找以.log结尾的文件
files=$(find . -type f -name "*.log")

if [ -z "$files" ]; then
    echo "没有错误日志"
else
    vim -c "ls" $files
fi

假设保存成文件名grep.sh,则执行.grep.sh dev 5000 -e "扫描字符串",第一个参数代表环境,第二个扫描行数,第三个-e可以单独使用,表示过滤的字符串,都有默认值,环境默认develop 扫描行数默认5000,-e默认Exception:ERROR

标签:grep,log,扫描,echo,sh,fi,日志,k8s
From: https://www.cnblogs.com/sky-chen/p/17808112.html

相关文章

  • vcftools 快速安装日志
     下载https://vcftools.github.io/examples.htmltar-xvfvcfools.0.X.XX.tar.gzexportPERL5LIB=/path/to/your/vcftools-directory/src/perl/cdvcftools/先执行./autogen.sh报错autoreconf找不到,执行yuminstall autoreconf./configure 如果这一步执行报错,缺少c++......
  • 如何实施符合功能安全及ASPICE要求的模型动态测试 ——TPT Workshop邀请函
    尊敬的女士/先生:2023年3月,北汇信息与诸多工程师相约上海,成功举办了今年第一场TPTWorkshop活动,与大家进行了深入的技术交流。如今,2023年已渐渐步入尾声,我们将在北汇信息上海总部再次举办题为“如何实施符合功能安全及ASPICE要求的模型动态测试”的TPTWorkshop活动,诚邀各位新老......
  • haproxy+keepalived部署高可用k8s集群
    四台机器节点名称节点ip节点角色基础配置1、升级机器内核2、将机器ip名称写入到/etc/hosts中3、基础环境准备#关闭防火墙,selinuxsystemctlstopfirewalldsystemctldisablefirewalldsed-i's/enforcing/disabled/'/etc/selinux/configsetenforce0##关闭swaps......
  • 突破性的多语言代码大模型基CodeShell:引领AI编程新时代
    突破性的多语言代码大模型基CodeShell:北京大学与四川天府银行联合打造,引领AI编程新时代1.CodeShell简介CodeShell是北京大学知识计算实验室联合四川天府银行AI团队研发的多语言代码大模型基座。它拥有70亿参数,经过对五千亿Tokens的训练,并具有8192的上下文窗口长度。CodeShell在......
  • zabbix_get -s -bash: zabbix_get: command not found
    zabbix_get找不到命令是因为没有安装上zabbix_get,解决办法:查看是否安装:[root@zabbixserver~]#rpm-qa|grepzabbixzabbix-web-6.4.8-release2.el8.noarchzabbix-server-mysql-6.4.8-release2.el8.x86_64zabbix-release-6.4-1.el8.noarchzabbix-web-mysql-6.4.8-release2......
  • RKE2 部署K8S1.28.x 高可用集群
    标签(空格分隔):kubernetes系列一:RKE2的介绍k8s官方部署安装集群的是使用kubeadm方式,但是该方式比较复杂繁琐,所以产生了一些新的部署安装集群方式,比如k3s和rke2等新方式k3s有着非常庞大的社区支持,部署安装也非常简单,设计为轻量级的k8s,可以很好的运行在物联网设备或者边缘计算......
  • Scrapy Logging日志
    日志级别Python的内置日志记录定义了5个不同的级别来指示给定日志消息的严重性logging.CRITICAL用于严重错误(最高严重性)logging.ERROR常规错误logging.WARNING用于警告消息logging.INFO用于信息性消息logging.DEBUG用于调试消息(最低严重性)创建项目创建项目scrapystartpro......
  • [vue-router] hash模式与history模式的区别
    单页面应用(SPA)单页面应用程序将所有的活动局限于一个Web页面中,在该Web页面初始化时加载相应的HTML、JavaScript和CSS。一旦页面加载完成,单页面应用不会因为用户的操作而进行页面的重新加载或跳转。取而代之的是利用JavaScript动态的变换HTML的内容,从而实现UI与用户的交互。由......
  • powershell自定义命令,类型linux的alias
    linux里经常取很多alias来方便敲命令。在win上也有类型功能,之前边百度边配过一次,然后今天要加一些,发现记不起来了。百度也不顺利。然后就找了一下之前的命令在哪里。C:\Windows\System32\WindowsPowerShell\v1.0下的profile.ps1。把自定义的函数写进去。就可以直接在powershell......
  • Bash 常用命令总结
    基础常用命令某个命令--h,对这个命令进行解释某个命令--help,解释这个命令(更详细)man某个命令,文档式解释这个命令(更更详细)(执行该命令后,还可以按/+关键字进行查询结果的搜索)Ctrl+c,结束命令TAB键,自动补全命令(按一次自动补全,连续按两次,提示所有以输入开头字母......