数据库参数备份-MongoDB

#!/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/*.csv

在这里插入图片描述

上一篇:探索《Crypto Rumble》游戏:核心玩法篇


下一篇:Bottom-Up Attention(借助CNN)