使用外部表儲存巡檢日誌

wxjzqym發表於2014-05-15

    今天接到一個需求,希望將伺服器的日常巡檢指標給儲存在資料庫中,這樣可以方便查詢歷史記錄以及巡檢報表的輸出。這裡我打算使用外部表來實現,以下簡要記錄實現過程:
    1.編寫巡檢指令碼
#!/bin/bash
echo `/sbin/ifconfig|grep "inet addr:10.10"|cut -f 2 -d ":"|cut -f 1 -d " "`,`date '+%m/%d %H:%M'`,`uptime|sed -r 's/(.*)(average: )(.*)/\3/'|sed 's/ //g'`,`vmstat -S m 3 1|tail -1|awk '{print $1","$2","$4","$7","$8","$13","$14","$15","$16}'` >>/LOG_REPORT/sysstat.txt

說明一下每部分命令代表的含義
#獲取伺服器IP
/sbin/ifconfig|grep "inet addr:10.10"|cut -f 2 -d ":"|cut -f 1 -d " "

#時間
date '+%F %T'


#CPU負載(1,5,15分鐘負載)
uptime|sed -r 's/(.*)(average: )(.*)/\3/'|sed 's/ //g'


#程式佇列
vmstat -S m 3 1|tail -1|awk '{print $1","$2}'


#可用記憶體
vmstat -S m 3 1|tail -1|awk '{print $4}'


#swap換頁
vmstat -S m 3 1|tail -1|awk '{print $7","$8}'


#CPU使用率
vmstat -S m 3 1|tail -1|awk '{print $13","$14","$15","$16}'

    2.在資料庫中建立監控使用者
sqlplus / as sysdba
create user monitor identified by oracle;
grant dba to monitor;

    3.建立外部表
CREATE TABLE sysstat
     (
      ip varchar2(40),
      create_time varchar2(40),
      load_1 number(5,2),
      load_5 number(5,2),
      load_15 number(5,2),
      run_p  number(5),
      block_p number(5),
      freemem number(10),
      swap_in number(5),
      swap_out number(5),
      cpu_usr  number(3),
      cpu_sys  number(3),
      cpu_idle number(3),
       cpu_wait number(3)          
      )
     ORGANIZATION EXTERNAL
     (
       TYPE ORACLE_LOADER
       DEFAULT DIRECTORY log_dir
       ACCESS PARAMETERS
       (
         records delimited by newline
         badfile log_dir:'sysstat%a_%p.bad'
         logfile log_dir:'sysstat%a_%p.log'
         fields terminated by ','
         missing field values are null
         ( ip,create_time,
            load_1, load_5, load_15,run_p,block_p,
           freemem, swap_in, swap_out, cpu_usr, cpu_sys, cpu_idle, cpu_wait 
         )
       )
       LOCATION ('sysstat.txt')
     )
     REJECT LIMIT UNLIMITED;

    4.展示一下查詢結果
    select * from sysstat order by 1,2;
使用外部表儲存巡檢日誌
   

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

相關文章