我们知道v$systeminfo视图可以查看服务器的资源使用情况,比如内存、CPU、磁盘的容量和使用量。可惜只能查看磁盘的总容量,无法显示每个卷和文件系统的明细情况。
我们可以通过数据库外部表结合SHELL脚本实现此功能。
详细如下:
1、编写df脚本:
df |tail -n +2 | sed 's/%//g' | awk '{A="";for(i=2;i<=NF;i++){A=A","$i};print $1""A}' > /home/liu/data/df.txt
2、将脚本加入crontab
0 * * * * /home/liu/script/df.sh
3、创建外部表控制文件
LOAD DATA
INFILE '/home/liu/data/df.txt' --df数据文件路径
INTO TABLE EXT_DF
FIELDS ','
(
Filesystem ,
blocks ,
used ,
available ,
ratio ,
Mounted
)
4、创建外部表
create EXTERNAL TABLE EXT_DF
(
Filesystem varchar(50),
blocks int,
used int,
available int,
ratio int,
Mounted varchar(50)
)
from '/home/liu/script/df.ctl' --控制文件路径
;
5、从数据库查询文件系统使用情况