#!/bin/bash
# 获取当前日期和时间的时间戳
TIMESTAMP=$(date +"%Y%m%d-%H%M%S")
# 0、创建带有时间戳的目录
mkdir /tmp/parameter_$TIMESTAMP/
# 1、获取所有命名空间
echo "1、获取所有命名空间"
#NAMESPACES=$(kubectl get ns -o=jsonpath='{.items[*].metadata.name}')
NAMESPACES=$(kubectl get ns | grep qfusion- | grep -v qfusion-cloudshell | awk '{print $1}')
CONTAINER=mongod
# 2、遍历所有命名空间,获取MongoDB实例的参数
echo "2、遍历所有命名空间,获取MongoDB实例的参数"
for NAMESPACE in $NAMESPACES; do
echo "Processing namespace: $NAMESPACE"
# 在每个命名空间中查找名称以 'mongo-' 开头的 Pod
for pod in $(kubectl get pods -n "$NAMESPACE" | grep '^mongo-' | awk '{print $1}'); do
echo "Processing pod: $pod in namespace: $NAMESPACE"
# 执行 mongos 命令并将输出保存到带有时间戳的文件
# 假设每个Pod中只有一个容器,如果多个容器需要指定容器名称
if echo "$pod" | grep -q 'mongos'; then
kubectl exec -it "$pod" -n "$NAMESPACE" -c mongod -- bash -c 'cat /etc/mongos.conf' > "/tmp/parameter_$TIMESTAMP/${pod}.csv" 2>/dev/null
else
kubectl exec -it "$pod" -n "$NAMESPACE" -c mongod -- bash -c 'cat /etc/mongod.conf' >> "/tmp/parameter_$TIMESTAMP/${pod}.csv" 2>/dev/null
fi
done
done
# 3、查看是否打印成功
echo "3、查看是否打印成功"
echo ""
#ls -l /tmp/parameter_$TIMESTAMP/
grep max /tmp/parameter_$TIMESTAMP