iT邦幫忙

DAY 25
14

30天搞懂TSM備份這檔事!系列 第 21

30天搞懂TSM備份這檔事_25(TSM&ShellScript)

趁光影交接時,飛吧!

你在TSM Console裏面,學會的指令越多,能做的事情就越多,最後你在AIX OS裏,能寫的Shell Script就變成無敵多。
一早,on哥已經坐在這等太陽出現了,on哥昨天測試了太陽交待的指令後,今天開心的將筆電準備好,因為那些指令,他都測試過了。沒多久,太陽來了,on哥看到他,興奮的說「Yo,早啊,昨天下午請假啊! 你說的指令,我都會了耶,今天要跟我說什麼其它的嗎?」

太陽將筆記本,翻到昨天那一頁...『TSM DB備份的指令你會了,再來是使用Query簡稱q,對TSM做查詢,所有可查詢的資訊,都是從TSM DB中取出來的。』

「是啊!」

『再來,要和你說的是SQL語法的Select,一樣是在TSM Console中使用,你在TSM Console裏面,學會的指令越多,能做的事情就越多,最後你在AIX OS裏,能寫的Shell Script就更多。像這個...

select a.NODE_NAME, a.SCHEDULE_NAME, a.STATUS, a.RESULT, to_char(a.ACTUAL_START, 'yyyy-mm-dd hh24:mi:ss') AS Start_Time, to_char(a.COMPLETED, 'yyyy-mm-dd hh24:mi:ss') AS End_Time, CAST(FLOAT(SUM(b.bytes)) / 1024 / 1024 / 1024 AS DECIMAL(8,2)) as Backup_GB, '' as ErrorReason, '' as CheckProcess, '' as ServerOwner, '' as OP from events a, summary b where ( b.activity='ARCHIVE' OR b.activity='BACKUP' OR b.activity='EXPIRATION') and (a.Scheduled_start between '%s' and '%s' ) And (a.status = 'Completed' and node_name is not null ) and ( a.node_name = b.entity ) group by a.NODE_NAME, a.SCHEDULE_NAME, a.STATUS, a.RESULT, to_char(a.ACTUAL_START, 'yyyy-mm-dd hh24:mi:ss'), to_char(a.COMPLETED, 'yyyy-mm-dd hh24:mi:ss') order by a.node_name
。』

on哥看了一下太陽呼叫出來的畫面,呆掉了...「這個是? 什麼??」

『這就是一般常用的TSM Sql語法,你在TSM Console中,可以使用這樣的語法,將客戶想要的資訊Select出來,做成客制化的報表。』

「可是,我看到你給我的EMail 裏,那個顧問B,不是寫說你沒能力製作客戶報表? 你如果會用Select,又寫的出這麼長的語法,他為什麼要那樣說你?」

『這個...業主方提出想要看什麼內容的報表,我們就照業主方提出的去製作,對吧!?』

「沒錯啊。」

『業主方如果沒有提出要看的報表,我們就不該擅自到資料庫裏面,去將資料取出,對吧!』

「是啊! 這大家都知道的吧,怎麼可以自己抓資料出來! 這些不都是國家機密?」

『那位顧問B,認為,我沒有聽他的,製作他提出,但未經業主同意的報表,所以...就寫E-Mail給他主管、PM、我們老闆相關人等...說我沒有製作TSM 報表能力,要來教我怎麼做Report。』

「這...」

『還很多很扯的事啦,這個不提了,總之...你可以使用Select指令,到TSM DB中取出你想要的資料。這個彈性,會比TSM提供的Query指令,還要大,取得的資訊也最完整。像是從TSM DB中取出備份檔案數最多的TSM Client是那一台,備份空間占最多的是那一個TSM Client,平均備份花多少時間等等,這些報表都可透過Select製作出來。』

「了解。」

『那...再來...嘿嘿嘿,下面的是TSM DB裏面的Table名稱,你今天就一個一個試吧! 嘿嘿嘿...我之前測了一個月,才把業主要的報表給做出來,所以...焦糖馬琪朵、熱的、大杯加一個帕里尼。』

「所以...蝦米!? 咖啡就算了,後面那個是什麼? 什麼尼?」

『你有三個選擇,一、不做了,今天就離職。二、過兩天收到顧問B,昭告全天下,on哥沒能力的信。三、花錢消災...』

on哥心想...「這賊船可真不好搭啊!」

「好啦好啦,就你說的焦糖馬琪朵、熱的、大杯跟那個什麼尼吧!」話一說完,太陽從桌下面出了一杯焦糖馬琪朵和一個雞肉帕里尼。

『這陣子辛苦啦,這是請你吃的! 你慢慢吃,我去吹一下風,待會回來...哦哦,這幾個Table你要先看一下,你一定不知道,這裏面有什麼內容,所以就用select * from nodes,看看裏面有什麼資料吧。

這下面的慢慢試,這都是TSM DB裏面的Table,你稍微了解後,就知道怎麼提供業主想要的報表了。

nodes
filespaces
occupancy
schedules
drives
paths
mgmtclasses
summary
volumes
actlog
events

on哥望著咖啡、什麼尼、還有太陽的筆電...再看著那雙眼疲憊的太陽...「好! 我試! 你去吹風吧。」

(待)

2013/10/17 SunAllen

鐵人賽_MIS技術組_文章導覽
上一篇
下一篇

2013鐵人賽_文章總覽
個人全系列連結


上一篇
30天搞懂TSM備份這檔事_24(TSM&ShellScript)
下一篇
30天搞懂TSM備份這檔事_26(TSM&ShellScript)
系列文
30天搞懂TSM備份這檔事!26
0
老鷹(eagle)
iT邦高手 1 級 ‧ 2013-10-17 13:27:30

select a.NODE_NAME, a.SCHEDULE_NAME, a.STATUS, a.RESULT, to_char(a.ACTUAL_START, 'yyyy-mm-dd hh24:mi:ss') AS Start_Time, to_char(a.COMPLETED...

好眼熟這不是SQL指令嗎XD

沙發

XDXD是啊是啊...Orz

今天很懶著用純SQL拿資料
使用CI的方法搞定
因為要join(4張表) + sum(兩個表的某欄位) + group(三張表的同欄位) + order(主表的欄位),很懶惰...
直接把主欄SHOW出來,結果再用物件去取得其他資料表資料!
SQL不是老鷹長項,除非CI有提供的方法Orz

0

我要留言

立即登入留言