快速解决应用系统、SQL、脚本中数据库密码的替换,sql脚本给了我3天时间写准备


我曾在一家保险公司做驻场维护时,入职第四天,由于数据库(DB2)要定期变更密码,上级要我更新应用程序、SQL脚本、SHELL脚本等中所涉及的密码,并一再强调,必须保证变更后第二天全国业务部门可以正常使用我们的核心系统。给了我3天时间写准备方案与实施计划。由于之前的脚本、SQL等非常的多、且尚不知哪些中有,哪些中无,也不清楚各应用程序的配置文件、脚本等所在的位置,脑袋顿时大了!但忽然间我想到了一种简单的方法,众多脚本、配置文件中的密码只是用于DB2连接,没有别的含义,而且是个明文,我最多只需要20分钟就可以搞定了。哈哈,3天,可以偷个懒啦。以下是我曾经的工作文档,共享给大家。(懒的手打了),如有更好的办法,请大家批评指正。本想用sed-i参数直接修改,但AIX系统自带sed版本没有-i参数................唉

2011年11月17日21点,核心数据库变更密码,密码变更涉及各核心服务器与人险服务器。由于所涉及的配置文件、脚本、SQL比较多,需要提前对文件进行过滤、准备好更改的脚本(只针对cisys用户)

1:查找cisys用户下所有文件及子文件夹内的所有文件,过滤出原密码内容,将内容生成一个新文件

1

find /home/cisys ! -name"find.txt"-type f -prune|xargs grep xxxxx > ./find.txt &

2:整理文件内的过滤内容,删除.tar结尾及一些重复的过滤出的文件。

3:更改脚本如下:

1

2

3

4

5

6

#!/bin/ksh

foriin`awk'{print $0}'find.txt`

do

cp${i} ${i}_$(date+%F)

vi${i} < ./xx.conf 1 >/dev/null2>/dev/null

done

xx.conf的内容::%s/xxxx/xxxxx/g

:wq

4:每个服务器一次执行前2步,然后上传脚本,赋予权限。准备在相应时刻执行。

5:人险服务器需要修改其连接池,及XML。先更改XML,启动weblogic中间件再修改连接池。

注:find查找指定路径后重定向的文件,由于没有权限只能放在家目录下。此时xargs仍会过滤到此文件,因此需要不查找过滤出来的文件,故!-name""-prune就派上用场了。ksh下date+%F=linuxbsh下的date+%Y%m%d.以vi读取替换命令,并循环打开文件的方式很笨拙。因为AIX5.3中sed版本过低,不支持-i选项,所以只好如此。vi后的重定向不是必须的,此种方式会报错,但实际已经完成替换,故只好把标准错误重定向给了/dev/null,输出由于不想看到满屏幕的滚动,所以也重定向给了/dev/null.

本文出自 “运维-上下求索” 博客,转载请与作者联系!

相关内容

    暂无相关文章