在每个Pod中执行命令

查看文件中某个值

v1

复制代码
for pod in $(kubectl get pod -oname -A |grep 'vastbase' ); do 
    base_name=$(echo "$pod" | sed 's|pod/||' | sed 's/-[0-9]\+-[0-9]\+$//')
    json_path="/pgdata/data/$base_name/has.dynamic.json"
    max_connections=$(ka exec -it "$pod" -c postgres -- cat $json_path | grep -o '"max_connections":[^,]*' | awk -F ':' '{print $2}' | tr -d ' ,')
    echo "$pod has max_connections $max_connections"
done

v2

复制代码
for pod in $(kubectl get pod -o name -n qfusion-admin | grep 'vastbase'); do
    # 从 Pod 名称中提取基础名称
    base_name=$(echo "$pod" | sed 's/pod\/\(.*\)-[0-9]\+-[0-9]\+$/\1/')

    # 定义容器内部的 JSON 文件路径
    json_path="/pgdata/data/$base_name/has.dynamic.json"

    # 使用 kubectl exec 命令在 Pod 内部执行 cat 命令获取文件内容
    # 这里假设所有 Pod 都只有一个容器,如果多个容器需要指定容器名称
    json_content=$(kubectl exec "$pod" -n qfusion-admin -- cat "$json_path")

    # 检查是否成功获取到内容
    if [ -z "$json_content" ]; then
        echo "Failed to get content for $pod"
        continue
    fi

    # 使用 grep 和 awk 提取 max_connections 的值
    # 这里假设 max_connections 的值是直接赋值的,并且格式正确
    max_connections=$(echo "$json_content" | grep -oP '"max_connections":\s*\K\d+')

    # 输出结果
    if [ -n "$max_connections" ]; then
        echo "$pod has max_connections $max_connections"
    else
        echo "max_connections not found for $pod"
    fi
done

查看数据库配置

复制代码
mkdir /tmp/parameter/


#!/bin/bash

NAMESPACE="qfusion-admin" 
CONTAINER="postgres"
#COMMAND=""

# 获取命名空间中所有 Pod 的名称
PODS=$(kubectl get pods -n $NAMESPACE -o=jsonpath='{.items[*].metadata.name}')

# 遍历每个 Pod 并执行命令
for POD in $PODS; do
  kubectl exec -it $POD -n "$NAMESPACE" -c "$CONTAINER" -- bash -c "vsql -c 'copy(select name,setting from pg_settings) to stdout with csv header';" >/tmp/parameter/${POD}.csv;
done
相关推荐
2401_8734794039 分钟前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
守城小轩1 小时前
基于Chrome140的Yahoo自动化(关键词浏览)——需求分析&环境搭建(一)
运维·自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发
handler011 小时前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
日取其半万世不竭3 小时前
LVM 逻辑卷管理:不停机扩容磁盘的正确方式
运维·服务器
优化Henry3 小时前
TDD-LTE站点Rilink=3链路故障处理案例---BBU侧C口“有发光、无收光”的排查与恢复
运维·网络·信息与通信·tdd
浪客灿心3 小时前
Linux网络传输层协议
linux·运维·网络
V搜xhliang02464 小时前
OpenClaw科研全场景用法:从文献到实验室的完整自动化方案
运维·开发语言·人工智能·python·算法·microsoft·自动化
遇见火星4 小时前
Nginx限流配置:防止接口被刷,服务器稳如泰山
运维·服务器·nginx
计算机安禾4 小时前
【Linux从入门到精通】第49篇:服务器故障排查终极指南——思路决定出路
linux·运维·服务器
古月-一个C++方向的小白4 小时前
Linux——初识文件
linux·运维·服务器