利用Oracle外部表监控文件系统的空间使用率

来源:互联网 发布:医学统计常用那些软件 编辑:程序博客网 时间:2024/05/21 06:54

概述:利用shell脚本获取文件系统空间利用率信息并保存到一个文件中,再利用Oracle外部表读取此文件。

1.首先利用df命令得到规范的空间使用率信息并保存到一个文件中

创建一个文件/home/oracle/df.sh

#su - oracle

$touch /home/oracle/df.sh

$chmod +x /home/oracle/df.sh

$ vi /home/oracle.sh

#  Linux 系统加下如下任意一行
df -hP|grep -v "`df -hP|head -n 1`"|sed 's/ \{1,\}/ /g'|sed "s/^/`date +%F` /g"|sed "s/^/`hostname -i` /g" >> df.txt
#或
df -hP|grep -v "`df -hP|head -n 1`"|tr -s ' '|sed "s/^/`date +%F` /g"|sed "s/^/`hostname -i` /g" >> df.txt

#  AIX 系统加入下面任意一行
df -g|grep -v "`df -g|head -n 1`"|sed 's/ \{1,\}/ /g'|sed "s/^/`date +%F` /g"|sed "s/^/`ifconfig -a|grep inet|head -n 1|awk '{print $2}'` /g" >> df.txt
#或
df -g|grep -v "`df -g|head -n 1`"|tr -s ' '|sed "s/^/`date +%F` /g"|sed "s/^/`ifconfig -a|grep inet|head -n 1|awk '{print $2}'` /g" >> df.txt


加入计划

$crontab -e

0 0 * * * /home/oracle/df.sh > /home/oracle/df.log 2>&1

2.利用数据库中的外部表去读取操作系统的文件信息

--首先创建一个目录(用哪个数据库用户去访问外部表就在哪个用户下面创建目录并创建外部表)
CREATE OR REPLACE DIRECTORY UTL_FILE_DIR AS '/home/oracle';
--创建外部表
-- Create table
create table M_OSSPACE_AIX
(
  ip            VARCHAR2(100),
  create_date   VARCHAR2(100),
  file_system   VARCHAR2(100),
  total_space   VARCHAR2(100),
  free          VARCHAR2(100),
  percent_used  VARCHAR2(100),
  iused         VARCHAR2(100),
  percent_iused VARCHAR2(100),
  mounted       VARCHAR2(100)
)
  organization external
   (
       type oracle_loader
       default directory UTL_FILE_DIR  --指定去哪个目录下读取文件
       access parameters
     (
         records delimited by newline
         fields terminated by ' '   --此处表示以空间分隔
     )
   location
       ('df.txt')     --读取目录中的df.txt文件
  );

3.直接从数据库表里查看文件系统空间使用率


1 0
原创粉丝点击