weblogic生成dump并上传ftp

1、根据服务名生成dump;
2、上传ftp然后备份dump文件

#!/bin/sh

set -e

#参数赋值,参数顺序:1、weblogic服务名;2、ftp的dump文件保存路径;3、ftp地址;4、ftp用户名;5、ftp密码;6、dump本地生成路径
server_name=$1
ftp_ip=$2
ftp_user=$3
ftp_pwd=$4
ftp_dir=$5
dump_path=$6

#导出dump文件
export_dump () {
	datatime=`date "+%Y%m%d%H%M%S"`
    dumpfile_name=${server_name}_dump-${datatime}.hprof
    HeapDumpPath=$(ps -ef |grep $server_name |grep -v grep |grep -v weblogic.${server_name} |awk -F 'HeapDumpPath' '{print $2}' |awk '{print $1}' |awk -F '=' '{print $2}')
    if [[ ${HeapDumpPath} =~ '/' ]];then
        dumpfile_path=${HeapDumpPath%/*}
        echo `date '+%F %T'` "$dumpfile_path"
    else
        #未获取到目录则创建
        dumpfile_path=${dump_path}
        if [ ! ${dumpfile_path} ];then
            echo `date '+%F %T'` "服务未定义HeapDumpPath,参数同样为空,变量异常,退出操作!"
            exit 1
        fi
        #对于自定义目录不存在需要创建
        if [ ! -d "$dumpfile_path" ]; then
            mkdir -p $dumpfile_path
        fi
        echo `date '+%F %T'` "HeapDumpPath为 $dumpfile_path"
    fi
    #
    #检查dumpfile_path是不是一个目录
	if [ ! -d ${dumpfile_path} ]; then
        echo `date '+%F %T'` "$dumpfile_path 不是一个目录,请检查!"
        exit 1
	fi
    #
    #生成dump
    java_path=$(ps -ef |grep java |grep -w "Dweblogic.Name=${server_name}"|grep -v grep |awk '{print $8}')
    if [[ ${java_path} =~ '/java' ]];then
        jmap_dir=${java_path%/*}
        jmap_path=${jmap_dir}/jmap        
        ${jmap_path} -dump:format=b,file=$(echo $dumpfile_path/${dumpfile_name}) $server_pid
        if [ $? -eq 0 ]; then
            echo `date '+%F %T'` "dump文件已经成功生成,生成的文件为:${dumpfile_name} "
            echo `date '+%F %T'` "即将进行文件上传FTP服务器任务---"
            putTo_ftp
        else
            echo `date '+%F %T'` "dump文件生成失败,任务结束!" 
        fi
    else
        jmap -dump:format=b,file=$(echo $dumpfile_path/${dumpfile_name}) $server_pid
        if [ $? -eq 0 ]; then
            echo `date '+%F %T'` "dump文件已经成功生成,生成的文件为:${dumpfile_name} "
            echo `date '+%F %T'` "即将进行文件上传FTP服务器任务---"
            putTo_ftp
        else
            echo `date '+%F %T'` "dump文件生成失败,任务结束!" 
        fi
    fi 
}

#将导出的dump文件上传到ftp服务器
putTo_ftp () {
#ftp上传	
lftp <<EOF
open ftp://${ftp_user}:${ftp_pwd}@${ftp_ip}:21
set ftp:passive-mode 1
set net:timeout 15
set net:max-retries 2
mkdir ${ftp_dir}
cd  ${ftp_dir}
lcd $(echo ${dumpfile_path})
put ${dumpfile_name}
bye
EOF

if [ $? -eq 0 ]; then
    echo `date '+%F %T'` "${dumpfile_name}文件完成上传!"
    echo `date '+%F %T'` "${dumpfile_name}文件开始备份......."
    cd $(echo ${dumpfile_path})
    tar -zcf ${server_name}_dump-$(date '+%Y%m%d%H%M%S').tar.gz ${dumpfile_name} --remove-files
    echo `date '+%F %T'` "${dumpfile_name}文件备份为${server_name}_dump-$(date '+%Y%m%d%H%M%S').tar.gz"
fi
 
}


#校验PID参数是否有效并调度生成dump和文件上传任务
main_dump () {
	server_pid=$(ps -ef |grep java |grep -w "Dweblogic.Name=${server_name}" |grep -v grep |awk '{print $2}')
	if [ ! $server_pid ];then
		echo `date '+%F %T'` "您输入的服务进程 $server_name 不存在!流程结束!"
        exit 1
	else
		echo "您输入的$server_name 服务进程存在,即将进行导出dump文件任务......."
		export_dump
	fi
}



main_dump
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebLogic生成的连接池配置文件通常是以XML格式存储的,其中包含数据库连接的敏感信息。为了保护这些敏感信息,你可以考虑对连接池配置文件进行加密处理。下面是一种常见的方法: 1. 使用WebLogic提供的加密工具对连接池配置文件进行加密。可以使用`weblogic.Encrypt`命令行工具来执行此操作。例如,假设你的连接池配置文件名为`jdbc.xml`,可以使用以下命令对其进行加密: ``` java weblogic.Encrypt jdbc.xml encrypted_jdbc.xml ``` 这将生成一个名为`encrypted_jdbc.xml`的加密后的配置文件。 2. 将原始的连接池配置文件备份,并将加密后的配置文件替换原始文件,以便在WebLogic中使用。 3. 在WebLogic服务器中配置正确的密钥存储文件。加密后的连接池配置文件需要使用密钥进行解密。你需要在WebLogic服务器中配置密钥存储文件,并将其与连接池关联。可以使用WebLogic控制台或WLST脚本来完成此操作。 在WebLogic控制台中,导航到"环境" -> "安全" -> "密钥存储",然后创建或导入一个密钥存储文件,并确保连接池与该密钥存储文件关联。 如果你使用WLST脚本,可以使用以下命令来配置密钥存储文件并与连接池关联: ```python connect('weblogic', 'password', 't3://localhost:7001') edit() startEdit() # 创建或导入密钥存储文件 createKeyStore('myKeystore', 'JKS', '/path/to/keystore.jks', 'keystore_password') # 将连接池与密钥存储文件关联 myConnectionPool = cmo.lookupJDBCSystemResource('YourConnectionPool') myConnectionPool.getJDBCResource().setKeyStores('myKeystore') save() activate() ``` 请确保将上述代码中的`weblogic`、`password`、`localhost:7001`和其他参数替换为实际的值。 通过以上步骤,你可以将WebLogic生成的连接池配置文件进行加密,并在WebLogic服务器中配置密钥存储文件以进行解密。这样可以保护连接池中的敏感信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值