Наткнулся на заметку и решил попробовать.
Практического применения пока не придумал, но действия таковы:
mkdir -p /u01/app/oracle/admin/XE/sh
disk_usage.sh
" следующего содержания:#!/bin/bash /bin/df -k | /bin/grep "^/" | /bin/sort -k1 | /bin/sed 's/ \+/~/g; s/%//g'
Результат работы скрипта выглядит так:
/dev/sda1~495844~111984~358260~24~/boot /dev/sda2~100660656~4775920~90748352~5~/u01 /dev/sda3~30106576~10357276~18196916~37~/ /dev/sda6~39661976~2269268~35354900~7~/home
dummy.dat
":touch dummy.dat
create directory BIN as '/u01/app/oracle/admin/XE/sh/';
TEST
":grant read, write, execute on directory BIN to test;
create table disk_usage ( filesystem varchar2(20) , fs_size number , fs_used number , fs_available number , fs_use_percent number(3) , mount_point varchar2(255) ) organization external ( type oracle_loader default directory BIN access parameters ( records delimited by newline preprocessor BIN: 'disk_usage.sh' fields terminated by "~" ) location (BIN:'dummy.dat') ) reject limit unlimited ;
select * from disk_usage;
и получаем:
FILESYSTEM FS_SIZE FS_USED FS_AVAILABLE FS_USE_PERCENT MOUNT_POINT ---------- ---------- ---------- ------------ -------------- --------------- /dev/sda1 495844 111984 358260 24 /boot /dev/sda2 100660656 4776012 90748260 5 /u01 /dev/sda3 30106576 10357352 18196840 37 / /dev/sda6 39661976 2269268 35354900 7 /home
Так же можно использовать и внешний файл, например, csv. Эта процедура немного проще.
mkdir -p /u01/app/oracle/admin/XE/files
cut -d':' -f1,5,6,7 /etc/passwd | sed 's/:/;/g' > users.csv
получится похожее:
... nginx;nginx user;/var/cache/nginx;/sbin/nologin apache;Apache;/var/www;/sbin/nologin www-data;;/home/www-data;/bin/bash tomcat;;/home/tomcat;/bin/bash ...
create directory FILES as '/u01/app/oracle/admin/XE/files';
TEST
":grant read, write on directory FILES to test;
create table users ( login varchar2(32) , lcomment varchar2(250) , home varchar2(250) , shell varchar2(50) ) organization external ( default directory FILES access parameters ( records delimited by newline fields terminated by ';' ) location ('users.csv') ) ;
select * from users where login in ('nginx','apache','www-data','tomcat');
получаем:
LOGIN LCOMMENT HOME SHELL ------------------------- ---------- ------------------------------ --------------- nginx nginx user /var/cache/nginx /sbin/nologin apache Apache /var/www /sbin/nologin www-data /home/www-data /bin/bash tomcat /home/tomcat /bin/bash