MYSQL
HOME > DB > MYSQL
2018.09.30 / 22:37

Mysql UDF ( os command »ç¿ë )

GAScripter
Ãßõ ¼ö 169

mysql¿¡¼­ OS command¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Â ¹æ¹ý

Ãâó : https://github.com/mysqludf/lib_mysqludf_sys
     : lib_mysqludf_sys.c ¸¸ ¹ÞÀ¸¸é µÊ
     : ÇØ´ç ÆÄÀÏÀº ÆÄÀÏ Ã·ºÎ µÊ

¼Ò½º º¹»ç>
cp lib_mysqludf_sys.c /usr/local/mysql/include/
cd /usr/local/mysql/include

ÄÄÆÄÀÏ>
gcc -m64 -fPIC -Wall -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o /usr/local/mysql/lib/plugin/lib_mysqludf_sys.so

Á¢¼Ó>
mysql -uroot -p 
use mysql

function »ý¼º>
CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_get RETURNS string SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_set RETURNS int SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so';


DROP FUNCTION IF EXISTS lib_mysqludf_sys_info;
DROP FUNCTION IF EXISTS sys_get;
DROP FUNCTION IF EXISTS sys_set;
DROP FUNCTION IF EXISTS sys_exec;
DROP FUNCTION IF EXISTS sys_eval;


function È®ÀÎ>
select * from mysql.func;

½ÇÇà Å×½ºÆ®>
select sys_eval('df -h') from dual;


load average
uptime | awk '{print $8}' | sed '$s/.$//'

memory »ç¿ë·®
free | grep Mem | awk '{print $3}'

memory Àüü
free | grep Mem | awk '{print $2}'

cpu »ç¿ëÀ²
mpstat | tail -1 | awk '{print 100-$11}'


-------------

insert into kim_test
select sys_eval("uptime | awk '{print $8}' | sed '$s/.$//'") ;
insert into kim_test
select sys_eval("free | grep Mem | awk '{print $3}'") ;
insert into kim_test
select sys_eval("mpstat | tail -1 | awk '{print 100-$11}'") ;