COLT_CMDB_linux_db2_20250504.sh

#!/bin/bash
#IT_BEGIN
#IT_TYPE=1
#IT DATABASE_DB2_ip|ip
#IT DATABASE_DB2_PORT|port
#IT DATABASE_DB2_version|version
#IT DATABASE_DB2_USERNAME|user
#IT DATABASE_DB2_hostname|hostname
#IT DATABASE_DB2_INSTANCENAME|instancename
#IT DATABASE_DB2_PATH|db2_path
#IT DATABASE_DB2_DataPath|data_path
#IT DATABASE_DB2_process|process
#IT DATABASE_DB2_Dbname|Dbname
#IT_END

# 日志函数
log() {
    echo "[INFO] $(date '+%Y-%m-%d %H:%M:%S') - $1"
}

# 错误处理函数
error() {
    echo "[ERROR] $(date '+%Y-%m-%d %H:%M:%S') - $1" >&2
    exit 1
}
# 优化实例名获取(抑制系统提示)
get_instancename() {
    # 方法1:从进程参数获取
    local inst=$(ps -ef | grep -m1 '[d]b2sysc' | awk -F'-i' '{print $2}' | awk '{print $1}')
    
    # 方法2:从环境变量获取
    [ -z "$inst" ] && inst=$(su - "${dbusername}" -c 'echo $DB2INSTANCE 2>/dev/null')
    
    # 方法3:从实例列表获取(抑制输出)
    [ -z "$inst" ] && inst=$(su - "${dbusername}" -c 'db2ilist 2>/dev/null' | head -1)
    
    # 方法4:从配置文件获取
    [ -z "$inst" ] && [ -f "/etc/services.db2" ] && inst=$(awk '/db2/ {print $1}' /etc/services.db2 | head -1)
    
    echo "${inst:-N/A}" | tr -d '\n'
}

# 优化端口获取(不依赖netstat/ss)
get_db2_port() {
    # 方法1:从DB2配置获取
    local svcname=$(su - "${dbusername}" -c "db2 get dbm cfg" 2>/dev/null | awk -F= '/SVCENAME/ {gsub(/ /,"",$2); print $2}')
    
    # 直接是数字端口
    if [[ "$svcname" =~ ^[0-9]+$ ]]; then
        echo "$svcname"
        return
    fi
    
    # 方法2:查询/etc/services
    if [ -f "/etc/services" ]; then
        local port=$(grep -w "$svcname" /etc/services | awk '{print $2}' | cut -d'/' -f1 | head -n1)
        [ -n "$port" ] && echo "$port" && return
    fi
    
    # 方法3:检查实例端口文件
    local port_file="/home/${dbusername}/sqllib/etc/services"
    if [ -f "$port_file" ]; then
        local port=$(awk '/^db2/ {print $2}' "$port_file" | cut -d'/' -f1 | head -n1)
        [ -n "$port" ] && echo "$port" && return
    fi
    
    # 方法4:从进程参数获取
    local port=$(ps -ef | grep '[d]b2sysc' | grep -Po 'port=\K\d+')
    [ -n "$port" ] && echo "$port" && return
    
    # 最终默认值
    echo "50000"
}
# 获取 DB2 实例用户名
get_db2_username() {
    ps -ef | grep -E "db2sysc|db2agent" | grep -v grep | awk '{print $1}' | sort -u | head -n 1
}

# 获取主机 IP 地址
get_host_ip() {
    if command -v ip >/dev/null 2>&1; then
        ip addr show | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk '{print $2}' | cut -d '/' -f 1 | tr "\n" "," | sed 's/,$//'
    elif command -v ifconfig >/dev/null 2>&1; then
        ifconfig -a | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk '{print $2}' | cut -d ':' -f 2 | tr "\n" "," | sed 's/,$//'
    elif command -v hostname >/dev/null 2>&1; then
        hostname -I | tr " " "," | sed 's/,$//'
    else
        error "无法获取 IP 地址:未找到 ifconfig、ip 或 hostname 命令。"
    fi
}

# 获取 DB2 配置项的值
get_db2_config_value() {
    local key=$1
    local dbname=$2
    su - "${dbusername}" -c "db2 get db cfg for ${dbname}" | grep -i "${key}" | awk -F "=" '{print $2}' | sed 's/ //g'
}

# 优化后的主函数
main() {
    log "开始收集 DB2 信息..."

    # 获取脚本名称和属性
    shname=$(basename "$0")
    ATTR="_X(g=$shname,p=cmdb,t=script,f=0)"

    # 获取 DB2 实例用户名(保持原逻辑)
    dbusername=$(ps -ef | grep -E "db2sysc|db2agent" | grep -v grep | awk '{print $1}' | sort -u | head -n 1)
    [ -z "$dbusername" ] && error "未找到 DB2 实例用户"
    log "DB2 实例用户: $dbusername"

    # 获取其他信息(保持原逻辑)
    version=$(su - "${dbusername}" -c 'db2licm -l' 2>/dev/null | awk '/^V/ {gsub(/"/,"",$3); print $3}')
    hostname=$(hostname)
    ip=$(get_host_ip)
    instancename=$(get_instancename)
    user=$(ps aux | grep db2 | grep -vE 'grep|root' | awk '{print $1}' | sort -u | tr '\n' ',' | sed 's/,$//')
    port=$(get_db2_port)
    data_path=$(su - "${dbusername}" -c "db2 get dbm cfg" 2>/dev/null | awk -F= '/Diagnostic data/ {gsub(/ /,"",$2); print $2}')
    db2_path=$(su - "${dbusername}" -c 'echo $DB2DIR 2>/dev/null')
    dbname=$(su - "${dbusername}" -c 'db2 list db directory' 2>/dev/null | awk -F= '/Database name/ {gsub(/ /,"",$2); print $2; exit}')

    # 输出结果(保持原格式)
    echo "COL_DETAIL_START:"
    echo "version[$ATTR]|+|${version:-}"
    echo "ip[$ATTR]|+|${ip:-}"
    echo "port[$ATTR]|+|${port:-50000}"
    echo "user[$ATTR]|+|${user:-}"
    echo "hostname[$ATTR]|+|${hostname:-}"
    echo "instancename[$ATTR]|+|${instancename:-}"
    echo "db2_path[$ATTR]|+|${db2_path:-}"
    echo "data_path[$ATTR]|+|${data_path:-}"
    echo "Dbname[$ATTR]|+|${dbname:-}"
    echo "COL_DETAIL_END:"

    log "DB2 信息收集完成。"
}

# 执行主函数
main

10.14.1.53执行结果如下:

[root@rabbit ~]# sh COLT_CMDB_linux_DB2_20250504.sh 
[INFO] 2025-05-05 22:07:48 - 开始收集 DB2 信息...
[INFO] 2025-05-05 22:07:48 - DB2 实例用户: db2inst1
COL_DETAIL_START:
version[_X(g=COLT_CMDB_linux_DB2_20250504.sh,p=cmdb,t=script,f=0)]|+|11.1
ip[_X(g=COLT_CMDB_linux_DB2_20250504.sh,p=cmdb,t=script,f=0)]|+|10.14.1.53,192.168.122.1
port[_X(g=COLT_CMDB_linux_DB2_20250504.sh,p=cmdb,t=script,f=0)]|+|50000
user[_X(g=COLT_CMDB_linux_DB2_20250504.sh,p=cmdb,t=script,f=0)]|+|db2fenc1,db2inst1
hostname[_X(g=COLT_CMDB_linux_DB2_20250504.sh,p=cmdb,t=script,f=0)]|+|rabbit
instancename[_X(g=COLT_CMDB_linux_DB2_20250504.sh,p=cmdb,t=script,f=0)]|+|db2inst1
db2_path[_X(g=COLT_CMDB_linux_DB2_20250504.sh,p=cmdb,t=script,f=0)]|+|/opt/ibm/db2/V11.1
data_path[_X(g=COLT_CMDB_linux_DB2_20250504.sh,p=cmdb,t=script,f=0)]|+|/home/db2inst1/sqllib/db2dump/
Dbname[_X(g=COLT_CMDB_linux_DB2_20250504.sh,p=cmdb,t=script,f=0)]|+|TEST
COL_DETAIL_END:
[INFO] 2025-05-05 22:07:52 - DB2 信息收集完成。

---------20250507----------------修改现场db2脚本实例名称+db2_path有 [YOU HAVE NEW MAIL]的提示

#!/bin/bash
#IT_BEGIN
#IT_TYPE=1
#IT DATABASE_DB2_ip|ip
#IT DATABASE_DB2_PORT|port
#IT DATABASE_DB2_version|version
#IT DATABASE_DB2_USERNAME|user
#IT DATABASE_DB2_hostname|hostname
#IT DATABASE_DB2_INSTANCENAME|instancename
#IT DATABASE_DB2_PATH|db2_path
#IT DATABASE_DB2_DataPath|data_path
#IT DATABASE_DB2_process|process
#IT DATABASE_DB2_Dbname|Dbname
#IT_END

# 日志函数
log() {
    echo "[INFO] $(date '+%Y-%m-%d %H:%M:%S') - $1"
}

# 错误处理函数
error() {
    echo "[ERROR] $(date '+%Y-%m-%d %H:%M:%S') - $1" >&2
    exit 1
}

# 增强安全执行函数
safe_exec() {
    local user=$1
    shift
    su - "$user" -c "export MAIL=0; . ~/sqllib/db2profile >/dev/null 2>&1; env LANG=C $*" 2>/dev/null
}

# 版本获取优化(兼容所有DB2版本)
get_db2_version() {
    # 方法1:从db2level获取
    local version=$(safe_exec "$dbusername" "db2level" | awk '
        /Product version/ {gsub(/[^0-9.]/, "", $NF); print $NF; exit}
        /Product is installed as/ {split($0,a,"\""); print a[2]; exit}
        /Informational tokens/ {split($0,a,"/"); print a[2]; exit}
    ')
    
    # 方法2:从db2licm获取(备用)
    [ -z "$version" ] && version=$(safe_exec "$dbusername" "db2licm -l" | awk '
        /Version:/ {gsub(/[^0-9.]/, "", $2); print $2; exit}
        /Product version:/ {gsub(/[^0-9.]/, "", $3); print $3; exit}
    ')
    
    # 方法3:从安装路径获取
    [ -z "$version" ] && {
        local install_path=$(safe_exec "$dbusername" 'echo "$DB2DIR"')
        [[ "$install_path" =~ V([0-9]+\.[0-9]+) ]] && version="${BASH_REMATCH[1]}"
    }
    
    echo "$version"
}
# 优化端口获取(不依赖netstat/ss)
get_db2_port() {
    # 方法1:从DB2配置获取(抑制邮件提示)
    local svcname=$(su - "${dbusername}" -c "MAIL=; db2 get dbm cfg" 2>/dev/null | awk -F= '/SVCENAME/ {gsub(/ /,"",$2); print $2}')
    
    # 直接是数字端口
    if [[ "$svcname" =~ ^[0-9]+$ ]]; then
        echo "$svcname"
        return
    fi
    
    # 方法2:查询/etc/services
    if [ -f "/etc/services" ]; then
        local port=$(grep -w "$svcname" /etc/services | awk '{print $2}' | cut -d'/' -f1 | head -n1)
        [ -n "$port" ] && echo "$port" && return
    fi
    
    # 方法3:检查实例端口文件
    local port_file="/home/${dbusername}/sqllib/etc/services"
    if [ -f "$port_file" ]; then
        local port=$(awk '/^db2/ {print $2}' "$port_file" | cut -d'/' -f1 | head -n1)
        [ -n "$port" ] && echo "$port" && return
    fi
    
    # 方法4:从进程参数获取
    local port=$(ps -ef | grep '[d]b2sysc' | grep -Po 'port=\K\d+')
    [ -n "$port" ] && echo "$port" && return
    
    # 最终默认值
    echo "50000"
}
# 安全执行函数(核心优化)
safe_exec() {
    local user=$1
    shift
    su - "$user" -c "export MAIL=0; . ~/sqllib/db2profile >/dev/null 2>&1; env LANG=C $*" 2>/dev/null
}
# 获取主机 IP 地址
get_host_ip() {
    if command -v ip >/dev/null 2>&1; then
        ip addr show | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk '{print $2}' | cut -d '/' -f 1 | tr "\n" "," | sed 's/,$//'
    elif command -v ifconfig >/dev/null 2>&1; then
        ifconfig -a | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk '{print $2}' | cut -d ':' -f 2 | tr "\n" "," | sed 's/,$//'
    elif command -v hostname >/dev/null 2>&1; then
        hostname -I | tr " " "," | sed 's/,$//'
    else
        error "无法获取 IP 地址:未找到 ifconfig、ip 或 hostname 命令。"
    fi
}
# 优化实例名获取
get_instancename() {
    local inst=$(ps -ef 2>/dev/null | awk '/[d]b2sysc/ {
        for(i=1;i<=NF;i++){
            if($i=="-i"){print $(i+1);exit}
        }
    }' | head -1)

    [ -z "$inst" ] && inst=$(safe_exec "$dbusername" 'echo "${DB2INSTANCE:-}"')
    [ -z "$inst" ] && inst=$(safe_exec "$dbusername" 'db2ilist 2>/dev/null' | head -1)
    [ -z "$inst" ] && [ -f "/etc/services.db2" ] && inst=$(awk '/db2/ {print $1;exit}' /etc/services.db2 2>/dev/null)
    echo "${inst:-N/A}" | tr -cd '[:alnum:]\n'
}

# 用户过滤优化(排除db2fenc1)
get_db2_users() {
    ps aux 2>/dev/null | awk '
        /[d]b2(sysc|agent|fmp)/ && !/db2fenc1/ {
            if(!seen[$1]++) users=users?users","$1:$1
        } END {print users}
    '
}

# 数据库名获取优化(基于网页1和网页3)
get_active_database() {
    safe_exec "$dbusername" "db2 list db directory" | awk -F= '
        /Database name/ {gsub(/ /,"",$2); db=$2}
        /Directory entry type/ && /Indirect/ {print db; exit}
    '
    # 备选SQL方式(需要有效连接)
    [ -z "$dbname" ] && dbname=$(safe_exec "$dbusername" "db2 connect to user >/dev/null 2>&1 && db2 'values(current db)'" | awk '/^1 /{print $2}')
}

main() {
    log "开始收集 DB2 信息..."
    
    shname=$(basename "$0" 2>/dev/null)
    ATTR="_X(g=${shname:-unknown},p=cmdb,t=script,f=0)"

    # 获取实例用户
    dbusername=$(ps -ef 2>/dev/null | awk '/[d]b2(sysc|agent)/ {print $1;exit}')
    [ -z "$dbusername" ] && error "未找到 DB2 实例用户"
    log "DB2 实例用户: $dbusername"

    # 获取版本信息(增强版)
    version=$(get_db2_version)
    #log "版本信息原始数据:$(safe_exec "$dbusername" 'db2level; db2licm -l')" 

    # 其他信息获取
    hostname=$(hostname 2>/dev/null || echo "unknown")
    ip=$(get_host_ip)
    instancename=$(get_instancename)
    user=$(get_db2_users)
    port=$(get_db2_port)
    data_path=$(safe_exec "$dbusername" "db2 get dbm cfg" | awk -F= '/Diagnostic data directory/ {gsub(/ /,"",$2); print $2}')
    db2_path=$(safe_exec "$dbusername" 'echo "$DB2DIR"' | tr -d '\n')
    dbname=$(get_active_database)

    # 输出结果
    echo "COL_DETAIL_START:"
    echo "version[$ATTR]|+|${version:-}"
    echo "ip[$ATTR]|+|${ip:-}"
    echo "port[$ATTR]|+|${port:-50000}"
    echo "user[$ATTR]|+|${user:-}"
    echo "hostname[$ATTR]|+|${hostname:-}"
    echo "instancename[$ATTR]|+|${instancename:-}"
    echo "db2_path[$ATTR]|+|${db2_path:-}"
    echo "data_path[$ATTR]|+|${data_path:-}"
    echo "Dbname[$ATTR]|+|${dbname:-}"
    echo "COL_DETAIL_END:"

    log "DB2 信息收集完成。"
}

# 全局抑制邮件提示
export MAIL=0
main
##上述脚本执行结果如下,version为取到值,请帮忙检查并且提供优化后全部shell代码

10.14.1.53执行结果如下;

[root@rabbit ~]# sh db2_20250507_258.sh 
[INFO] 2025-05-08 04:39:45 - 开始收集 DB2 信息...
[INFO] 2025-05-08 04:39:45 - DB2 实例用户: db2inst1
COL_DETAIL_START:
version[_X(g=db2_20250507_258.sh,p=cmdb,t=script,f=0)]|+|11.1
ip[_X(g=db2_20250507_258.sh,p=cmdb,t=script,f=0)]|+|10.14.1.53,192.168.122.1
port[_X(g=db2_20250507_258.sh,p=cmdb,t=script,f=0)]|+|50000
user[_X(g=db2_20250507_258.sh,p=cmdb,t=script,f=0)]|+|db2inst1
hostname[_X(g=db2_20250507_258.sh,p=cmdb,t=script,f=0)]|+|rabbit
instancename[_X(g=db2_20250507_258.sh,p=cmdb,t=script,f=0)]|+|db2inst1
db2_path[_X(g=db2_20250507_258.sh,p=cmdb,t=script,f=0)]|+|/opt/ibm/db2/V11.1
data_path[_X(g=db2_20250507_258.sh,p=cmdb,t=script,f=0)]|+|/home/db2inst1/sqllib/db2dump/
Dbname[_X(g=db2_20250507_258.sh,p=cmdb,t=script,f=0)]|+|TEST
COL_DETAIL_END:
[INFO] 2025-05-08 04:39:53 - DB2 信息收集完成。

------20250508---兼容操作系统AIX7.1执行

#!/bin/bash
#IT_BEGIN
#IT_TYPE=1
#IT DATABASE_DB2_ip|ip
#IT DATABASE_DB2_PORT|port
#IT DATABASE_DB2_version|version
#IT DATABASE_DB2_USERNAME|user
#IT DATABASE_DB2_hostname|hostname
#IT DATABASE_DB2_INSTANCENAME|instancename
#IT DATABASE_DB2_PATH|db2_path
#IT DATABASE_DB2_DataPath|data_path
#IT DATABASE_DB2_process|process
#IT DATABASE_DB2_Dbname|Dbname
#IT_END

# 跨平台IP获取
get_host_ip() {
    ip_list=""
    # AIX优先检测
    if [ -x "/usr/sbin/ifconfig" ]; then
        ip_list=$(ifconfig -a 2>/dev/null | awk '/inet / && !/127.0.0.1/ {print $2}' | cut -d: -f2 | tr '\n' ',' | sed 's/,$//')
    elif [ -x "/usr/bin/host" ]; then
        ip_list=$(host $(hostname) 2>/dev/null | awk '/address/ {print $NF}' | tr '\n' ',' | sed 's/,$//')
    else
        # Linux兼容模式
        ip_list=$(ip -o addr show 2>/dev/null | awk '/inet / && !/127|::1/ {print $4}' | cut -d/ -f1 | tr '\n' ',' | sed 's/,$//')
    fi
    [ -z "$ip_list" ] && ip_list="127.0.0.1"
    echo "$ip_list"
}

log() {
    echo "[INFO] $(date '+%Y-%m-%d %H:%M:%S') - $1" >&2
}

error() {
    echo "[ERROR] $(date '+%Y-%m-%d %H:%M:%S') - $1" >&2
    exit 1
}

# 强化安全执行(兼容AIX/Linux)
safe_exec() {
    local user=$1
    shift
    (su - "$user" -c "unset MAIL MAILCHECK MAILPATH;
                     export LANG=C PATH=/usr/bin:/bin:/usr/sbin:/sbin MAILCHECK=0;
                     . ~/sqllib/db2profile >/dev/null 2>&1;
                     $* 2>&1" 2>/dev/null) | awk '!/YOU (HAVE|RECEIVED) NEW MAIL/ && !/grep:/'
}

# 版本获取强化(精确提取主版本)
get_db2_version() {
    # 方法1:解析db2level主版本(网页6关键方法)
    local version=$(safe_exec "$dbusername" "db2level" | awk '
        /Product[[:space:]]+version/ {
            gsub(/[^0-9.]/, "", $NF);
            if (match($NF, /^[0-9]+\.[0-9]+/)) {
                print substr($NF, RSTART, RLENGTH);
                exit
            }
        }
        /Informational[[:space:]]+tokens/ {
            for(i=1;i<=NF;i++){
                if ($i ~ /v[0-9]/) {
                    split($i,a,"v");
                    split(a[2],b,".");
                    printf "%s.%s",b[1],b[2];
                    exit
                }
            }
        }
    ')

    # 方法2:SQL查询强化(网页6补充方案)
    [ -z "$version" ] && version=$(safe_exec "$dbusername" "db2 -x 'select substr(version,1,4) from sysibmadm.env_inst_info'" 2>/dev/null | 
        awk -F. '/^[0-9]/{printf "%s.%s",$1,$2}')

    # 方法3:安装路径保底(网页7兼容方案)
    [ -z "$version" ] && {
        local install_path=$(safe_exec "$dbusername" "echo \$DB2DIR")
        [[ "$install_path" =~ V([0-9]+\.[0-9]+) ]] && version="${BASH_REMATCH[1]}"
    }

    echo "${version:-N/A}"
}
# 实例名获取(完全兼容)
get_instancename() {
    # 方法1:跨平台进程解析
    local inst=$(ps -ef 2>/dev/null | awk '/[d]b2sysc/ {
        for(i=1;i<=NF;i++){
            if($i == "-i") {print $(i+1); exit}
        }
    }' | head -1)

    # 方法2:环境变量检测
    [ -z "$inst" ] && inst=$(safe_exec "$dbusername" 'echo ${DB2INSTANCE:-N/A}')

    # 方法3:实例列表检测
    [ "$inst" = "N/A" ] && inst=$(safe_exec "$dbusername" "db2ilist 2>/dev/null" | head -1)

    echo "${inst:-N/A}" | tr -d '\n'
}

# 端口获取强化
get_db2_port() {
    local svcname=$(safe_exec "$dbusername" "db2 -x 'get dbm cfg'" | awk -F= '/SVCENAME/ {gsub(/ /, "", $2); print $2}')
    
    # 直接数字检测
    [[ "$svcname" =~ ^[0-9]+$ ]] && { echo "$svcname"; return; }

    # 服务文件检测
    local service_files=(
        "/etc/services"
        "/home/${dbusername}/sqllib/etc/services"
        "/etc/services.db2"
    )
    for file in "${service_files[@]}"; do
        [ -f "$file" ] && {
            local port=$(awk -v svc="$svcname" '
                $1 == svc && !/^#/ {
                    split($2, a, "/");
                    print a[1];
                    exit
                }' "$file")
            [ -n "$port" ] && { echo "$port"; return; }
        }
    done

    # 网络检测最后手段
    echo "${svcname:-50000}" | tr -cd '0-9'
}

main() {
    shname=$(basename "$0")
    ATTR="_X(g=${shname},p=cmdb,t=script,f=0)"

    # 进程用户检测(完全兼容)
    dbusername=$(ps -ef 2>/dev/null | awk '/[d]b2(sysc|agent)/ && !/awk/ {print $1; exit}')
    [ -z "$dbusername" ] && dbusername=$(ps aux 2>/dev/null | awk '/[d]b2(sysc|agent)/ && !/awk/ {print $1; exit}')
    [ -z "$dbusername" ] && error "未找到DB2实例用户"

    # 信息收集
    version=$(get_db2_version)
    hostname=$(hostname 2>/dev/null || echo "unknown")
    ip=$(get_host_ip)
    instancename=$(get_instancename)
    user=$(ps -ef 2>/dev/null | awk '/[d]b2(sysc|agent|fmp)/&&!/db2fenc1/{if(!u[$1]++){printf "%s,",$1}} END{print ""}' | sed 's/,$//')
    port=$(get_db2_port)
    data_path=$(safe_exec "$dbusername" "db2 -x 'get dbm cfg'" | awk -F= '/Diagnostic data directory/{gsub(/ /, "", $2); print $2}')
    db2_path=$(safe_exec "$dbusername" "echo \${DB2DIR:-N/A}" | tr -d '\n')
    dbname=$(safe_exec "$dbusername" "db2 list db directory" | awk -F= '/Database name/{gsub(/ /,"",$2); print $2; exit}')

    # 标准化输出
    echo "COL_DETAIL_START:"
    echo "version[$ATTR]|+|${version:-}"
    echo "ip[$ATTR]|+|${ip:-}"
    echo "port[$ATTR]|+|${port:-50000}"
    echo "user[$ATTR]|+|${user:-}"
    echo "hostname[$ATTR]|+|${hostname:-}"
    echo "instancename[$ATTR]|+|${instancename:-}"
    echo "db2_path[$ATTR]|+|${db2_path:-}"
    echo "data_path[$ATTR]|+|${data_path:-}"
    echo "Dbname[$ATTR]|+|${dbname:-}"
    echo "COL_DETAIL_END:"
}

# 环境清理
unset MAIL MAILCHECK MAILPATH
main

10.14.1.53环境执行结果如下:

[root@rabbit ~]# sh db2_20250508_000.sh 
COL_DETAIL_START:
version[_X(g=db2_20250508_000.sh,p=cmdb,t=script,f=0)]|+|11.1
ip[_X(g=db2_20250508_000.sh,p=cmdb,t=script,f=0)]|+|10.14.1.53,192.168.122.1
port[_X(g=db2_20250508_000.sh,p=cmdb,t=script,f=0)]|+|50000
user[_X(g=db2_20250508_000.sh,p=cmdb,t=script,f=0)]|+|db2inst1
hostname[_X(g=db2_20250508_000.sh,p=cmdb,t=script,f=0)]|+|rabbit
instancename[_X(g=db2_20250508_000.sh,p=cmdb,t=script,f=0)]|+|db2inst1
db2_path[_X(g=db2_20250508_000.sh,p=cmdb,t=script,f=0)]|+|/opt/ibm/db2/V11.1
data_path[_X(g=db2_20250508_000.sh,p=cmdb,t=script,f=0)]|+|/home/db2inst1/sqllib/db2dump/
Dbname[_X(g=db2_20250508_000.sh,p=cmdb,t=script,f=0)]|+|TEST
COL_DETAIL_END:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值