集团网站设计特性,中国网站建设公司,纯静态网站 后台,黑网站代码制作MySQL
#!/bin/bash
# 获取当前日期和时间的时间戳
TIMESTAMP$(date %Y%m%d-%H%M%S)# 0、创建目录
mkdir /tmp/parameter_$TIMESTAMP/# 1、获取所有命名空间
echo 1、获取所有命名空间
NAMESPACES$(kubectl get ns | grep qfusion- | grep -v qfusion-…MySQL
#!/bin/bash
# 获取当前日期和时间的时间戳
TIMESTAMP$(date %Y%m%d-%H%M%S)# 0、创建目录
mkdir /tmp/parameter_$TIMESTAMP/# 1、获取所有命名空间
echo 1、获取所有命名空间
NAMESPACES$(kubectl get ns | grep qfusion- | grep -v qfusion-cloudshell | awk {print $1})
CONTAINERmysql# 2、遍历所有命名空间获取MySQL实例的参数
echo 2、遍历所有命名空间获取MySQL实例的参数
for NAMESPACE in $NAMESPACES; doecho Processing namespace: $NAMESPACE# 在每个命名空间中查找名称以 mysql- 开头的 Podfor pod in $(kubectl get pods -n $NAMESPACE -ojsonpath{.items[*].metadata.name} | grep ^mysql-); doecho Processing pod: $pod in namespace: $NAMESPACE# 执行 mysql 命令并将输出保存到带有时间戳的文件kubectl exec -it $pod -n $NAMESPACE -c $CONTAINER -- bash -c mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e show variables \G; /tmp/parameter_$TIMESTAMP/${pod}_${TIMESTAMP}.csv 2/dev/nulldone
done# 3、查看是否打印成功
echo 3、查看是否打印成功
echo
ls -l /tmp/parameter_$TIMESTAMP/
head -n 2 /tmp/parameter_$TIMESTAMP/*.csv MongoDB
#!/bin/bash
# 获取当前日期和时间的时间戳
TIMESTAMP$(date %Y%m%d-%H%M%S)# 0、创建带有时间戳的目录
mkdir /tmp/parameter_$TIMESTAMP/# 1、获取所有命名空间
echo 1、获取所有命名空间
#NAMESPACES$(kubectl get ns -ojsonpath{.items[*].metadata.name})
NAMESPACES$(kubectl get ns | grep qfusion- | grep -v qfusion-cloudshell | awk {print $1})
CONTAINERmongod# 2、遍历所有命名空间获取MongoDB实例的参数
echo 2、遍历所有命名空间获取MongoDB实例的参数
for NAMESPACE in $NAMESPACES; doecho Processing namespace: $NAMESPACE# 在每个命名空间中查找名称以 mongo- 开头的 Podfor pod in $(kubectl get pods -n $NAMESPACE | grep ^mongo- | awk {print $1}); doecho Processing pod: $pod in namespace: $NAMESPACE# 执行 mongos 命令并将输出保存到带有时间戳的文件# 假设每个Pod中只有一个容器如果多个容器需要指定容器名称if echo $pod | grep -q mongos; thenkubectl exec -it $pod -n $NAMESPACE -c mongod -- bash -c cat /etc/mongos.conf /tmp/parameter_$TIMESTAMP/${pod}.csv 2/dev/nullelsekubectl exec -it $pod -n $NAMESPACE -c mongod -- bash -c cat /etc/mongod.conf /tmp/parameter_$TIMESTAMP/${pod}.csv 2/dev/nullfidone
done# 3、查看是否打印成功
echo 3、查看是否打印成功
echo
#ls -l /tmp/parameter_$TIMESTAMP/grep max /tmp/parameter_$TIMESTAMP/*.csv Oracle
#!/bin/bash# 获取所有命名空间
NAMESPACES$(kubectl get ns | grep qfusion- | grep -v qfusion-cloudshell | awk {print $1})# 遍历所有命名空间
for namespace in $NAMESPACES; do# 获取命名空间下所有名称中包含 oracle 的 Podpods$(kubectl get pods -n $namespace | grep ^oracle- | awk {print $1})# 遍历所有 Oracle Podfor pod in $pods; doecho cluster${pod%-*}cluster${cluster::-1}echo 处理命名空间 $namespace 下的实例 $pod# 获取数据库版本和SIDDATABASE_VERSION$(kubectl get pod -n $namespace $pod -o jsonpath{.spec.containers[0].env[?(.nameDATABASE_VERSION)].value})ORACLE_SID$(kubectl get pod -n $namespace $pod -o jsonpath{.spec.containers[0].env[?(.nameORACLE_SID)].value})# 获取实例sys密码secret_name${cluster}0-root # 确保这是正确的Secret名称pwd$(kubectl get secret -n $namespace $secret_name -o jsonpath{.data.password} | base64 --decode)# 获取实例IP信息# 这里假设你有一个名为 pod-vip 的服务你需要根据你的实际服务名称来替换ipaddr$(kubectl get lb -n $namespace | grep $cluster | awk {print $2})port$(kubectl get lb -n $namespace | grep $cluster | awk {print $3})# 获取当前时间戳timestamp$(date %Y%m%d_%H%M%S)output_fileparameters_${pod}_${namespace}_${timestamp}.txtecho 将输出保存到文件: $output_file# 执行 SQL*Plus 命令并重定向输出到文件su - oracle -c sqlplus sys/$pwd$ipaddr:$port/$ORACLE_SID as sysdba EOFSET PAGESIZE 999;SET LINESIZE 999;SET FEEDBACK OFF;SET HEADING OFF;SET TRIMSPOOL ON;SET LONG 9999;SET LONGCHUNKSIZE 9999;SET TRIMSPOOL ON;SET SERVEROUTPUT ON;SET TRIM ON;SET TAB OFF;SET FEEDBACK OFF;SET HEADING OFF;COLUMN NAME FORMAT A30;COLUMN TYPE FORMAT A20;COLUMN VALUE FORMAT A100;SELECT name, type, value FROM v\\\$parameter;EXIT;
EOF $output_fileecho 输出已保存到 $output_filedone
done单个实例参数备份
#!/bin/bashif [ -z $1 ]; thenecho 未知参数用法: $0 [Pod名称] [命名空间]exit 1
fipod$1
cluster${pod%-*}
if [ -z $2 ]; thennamespaceqfusion-admin
elsenamespace$2
fiecho 实例 $1 $2 的信息如下database${cluster%-*}
if [ $database oracle ]; then# 查看实例版本和SIDDATABASE_VERSION$(kubectl get pod -n $namespace $pod -o jsonpath{.spec.containers[0].env[?(.nameDATABASE_VERSION)].value})echo 实例版本 $DATABASE_VERSIONORACLE_SID$(kubectl get pod -n $namespace $pod -o jsonpath{.spec.containers[0].env[?(.nameORACLE_SID)].value})echo 实例SID $ORACLE_SID# 查看实例sys密码secret_name${cluster}-root # 确保这是正确的Secret名称pwd$(kubectl get secret -n $namespace $secret_name -o jsonpath{.data.password} | base64 --decode)echo 密码 $pwd# 查看实例IP信息ipaddr$(kubectl get lb -n $namespace | grep $cluster | awk {print $2})port$(kubectl get lb -n $namespace | grep $cluster | awk {print $3})echo 实例VIP $ipaddr:$port# 输出连接串echo 连接串 sqlplus sys/$pwd$ipaddr:$port/$ORACLE_SID as sysdba# 执行 SQL*Plus 命令并重定向输出到文件timestamp$(date %Y%m%d_%H%M%S)output_fileparameters_${pod}_${timestamp}.txtecho 将输出保存到文件: $output_filesu - oracle -c sqlplus sys/$pwd$ipaddr:$port/$ORACLE_SID as sysdba EOFSET PAGESIZE 999;SET LINESIZE 999;SET FEEDBACK OFF;SET HEADING OFF;SET TRIMSPOOL ON;SET LONG 9999;SET LONGCHUNKSIZE 9999;SET TRIMSPOOL ON;SET SERVEROUTPUT ON;SET TRIM ON;SET TAB OFF;SET FEEDBACK OFF;SET HEADING OFF;COLUMN NAME FORMAT A30;COLUMN TYPE FORMAT A20;COLUMN VALUE FORMAT A100;SELECT name, type, value FROM v\\\$parameter;show parameterEXIT;
EOF $output_fileecho 输出已保存到 $output_fileelseecho 该数据库类型暂不支持
fi获取实例信息脚本
#!/bin/bashif [ -z $1 ]; thenecho 未知参数用法: $0 [Pod名称] [命名空间]exit 1
fi
pod$1
pod${pod%-*}
if [ -z $2 ]; thennamespaceqfusion-admin
elsenamespace$2
fidatabase${pod%-*}
if [ $database oracle ]; then# 查看实例SIDORACLE_SID$(kubectl get pod -n $namespace $pod-0 -o jsonpath{.spec.containers[0].env[?(.nameORACLE_SID)].value})echo 实例SID $ORACLE_SID# 查看实例sys密码secret_name$pod-root # 确保这是正确的Secret名称pwd$(kubectl get secret -n $namespace $secret_name -o jsonpath{.data.password} | base64 --decode)echo 密码 $pwd# 查看实例IP信息ipaddrkubectl get lb -n $namespace | grep $pod | awk {print$2}portkubectl get lb -n $namespace | grep $pod | awk {print$3}echo 实例vip $ipaddr:$port# 输出连接串echo sqlplus sys/$pwd$ipaddr:$port/$ORACLE_SID as sysdba
elseecho 该数据库类型暂不支持
fi