Tuesday, November 20, 2012

External tables to monitor os space in UNIX



To create the external table in oracle database follow the below steps.
(Note: Here we are creating external table for monitoring the OS space information considering OS is UNIX flavored)

SQL> create directory Directory_Name as '/usr/tmp'

SQL> CREATE TABLE server_space
(
  FILESYSTEM VARCHAR2(100),
  TOTAL_GB VARCHAR2(10),
  USED_GB VARCHAR2(10),
  FREE_GB VARCHAR2(10),
  USED_SPACE VARCHAR2(10),
  MOUNTED_ON VARCHAR2(100)
)
ORGANIZATION EXTERNAL
 (  TYPE ORACLE_LOADER
    DEFAULT DIRECTORY Directory_Name
    ACCESS PARAMETERS
    (
       RECORDS DELIMITED BY NEWLINE
       NOBADFILE
       NODISCARDFILE
       NOLOGFILE
       SKIP 0
       FIELDS TERMINATED BY WHITESPACE
       MISSING FIELD VALUES ARE NULL
       REJECT ROWS WITH ALL NULL FIELDS
       (
         FILESYSTEM CHAR,
         TOTAL_GB CHAR,
         USED_GB CHAR,
         FREE_GB CHAR,
         USED_SPACE CHAR,
         MOUNTED_ON CHAR
       )
    )
    LOCATION (ALERT_LOG_DIR:'server.txt')
 )REJECT LIMIT UNLIMITED


Schedule the below line using crontab
df -h |grep -v Filesystem|awk '{print $1" "$2" "$3" "$4" "$5" "$6}' >/usr/tmp/server.txt

Now you can do the server side space monitoring without login to server.

SQL>select * from server_space;




No comments:

Post a Comment