做为一名DBA一定避免不了经常编写各种各样的Shell脚本,这里给大家介绍一种在Shell中快速获得数据库信息的方法。
以与数据库进行交互获得数据库版本为例演示一下这个小技巧。
1.编写一个只包含一行命令的脚本echo_db_version.sh
secooler@secDB /home/oracle$ vi echo_db_version.sh
echo 'select * from v$version;' | sqlplus -s / as sysdba
~
~
没错,仅仅需要的就是echo命令、sqlplus命令和管道符就可以完成我们的目标。
2.执行这个脚本
secooler@secDB /home/oracle$ sh echo_db_version.sh
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
目的达到。
3.小结
使用这个小技巧在某些情况下非常的便捷,需要灵活掌握。
我们需要的仅仅是修改echo命令后面字符串的内容便可达到与数据库进行交互的目的。
例如下面应用举例:
1)获得数据库的当前时间
echo 'select sysdate from dual;' | sqlplus -s / as sysdba
SYSDATE
-------------------
2010-06-18 23:28:56
2)获得sqlplus的环境变量信息
echo 'show all' | sqlplus -s / as sysdba
这里将输出内容省略,请自行尝试。
等等……
Good luck.
secooler
10.06.18
-- The End --