【Shell】echo與 sqlplus命令相結合快速獲得資料庫資訊

secooler發表於2010-06-18
做為一名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 --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-665696/,如需轉載,請註明出處,否則將追究法律責任。

相關文章