把Linux硬盘的使用情况插入数据库表
这是我在学习shell编程是写的,目的:熟悉grep,sed,awk的使用,将硬盘使用信息转换为SQL语
Linux硬盘使用情况可以df –h命令查看
如:
[oracle@TEST ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/cciss/c0d0p5 79G 15G 61G 20% /
/dev/cciss/c0d0p1 99M 13M 82M 13% /boot
none 8.0G 0 8.0G 0% /dev/shm
/dev/cciss/c0d0p3 99G 89G 4.6G 96% /u02
/dev/cciss/c0d0p2 289G 2.0G 272G 1% /u03
/dev/cciss/c0d0p7 330G 29G 285G 10% /u09
通过下的shell script对df –h的结果进行处理
df -h | grep -v '^\' | grep -v '^\' | sed 's/%//g'
[oracle@TEST ~]$ df -h | grep -v '^\' | grep -v '^\' | sed 's/%//g'
/dev/cciss/c0d0p5 79G 15G 61G 20 /
/dev/cciss/c0d0p1 99M 13M 82M 13 /boot
/dev/cciss/c0d0p3 99G 89G 4.6G 96 /u02
/dev/cciss/c0d0p2 289G 2.1G 272G 1 /u03
/dev/cciss/c0d0p7 330G 29G 285G 10 /u09
这条语句的含义是去掉df –h中的Filesystem,none行,并将硬盘使用百分比的%去掉,可以用重定向符>将结果输出到一个文件中
df -h | grep -v '^\' | grep -v '^\' | sed 's/%//g' > diskinfo
将上面的信息转换为sql,并将sql保存到diskinfo.sql文件中
awk '{print "insert into diskinfo values ('\''"$1"'\'', '\''"$2"'\'', '\''"$3"'\'', '\''"$4"'\'', "$5", '\''"$6"'\'');"}' diskinfo > diskinfo.sql
在数据中创建表
SQL> create table diskinfo
2 (filesystem varchar2(50),
3 totalsize varchar2(20),
4 used varchar2(20),
5 avail varchar2(20),
6 usepercent number,
7 mounton varchar2(15)
8 );
通过下的script把数据插入到diskinfo表中
insert.sh
#!/bin/sh
#inster data to table diskinfo #
sqlplus / as sysdba << EOF
@diskinfo.sql
exit;
本文作者:佚名 来源:http://space.itpub.net/7419833/viewspace-561552
CIO之家 www.ciozj.com 微信公众号:imciow