- Shell编程之系统硬件信息数据库收集
首先我们创建数据库表,格式如下:
CREATE TABLEaudit_audit_system
(
id
int(11) NOT NULL AUTO_INCREMENT,
ip_info
varchar(50) NOT NULL,
serv_info
varchar(50) NOT NULL,
cpu_info
varchar(50) NOT NULL,
disk_info
varchar(50) NOT NULL,
mem_info
varchar(50) NOT NULL,
load_info
varchar(50) NOT NULL,
mark_info
varchar(50) NOT NULL,
PRIMARY KEY (id
),
UNIQUE KEYip_info
(ip_info
),
UNIQUE KEYip_info_2
(ip_info
)
);
然后编写脚本如下:
#!/bin/sh
#auto get system info
#author wugk 2014-08-29
echo -e “\033[34m \033[1m”
cat <<EOF
++++++++++++++++++++++++++++++++++++++++++++++
++++++++Welcome to use system Collect+++++++++
++++++++++++++++++++++++++++++++++++++++++++++
EOF
ip_info=ifconfig |grep "Bcast"|tail -1 |awk '{print $2}'|cut -d: -f 2
cpu_info1=cat /proc/cpuinfo |grep 'model name'|tail -1 |awk -F: '{print $2}'|sed 's/^ //g'|awk '{print $1,$3,$4,$NF}'
cpu_info2=cat /proc/cpuinfo |grep "physical id"|sort |uniq -c|wc -l
serv_info=hostname |tail -1
disk_info=fdisk -l|grep "Disk"|grep -v "identifier"|awk '{print $2,$3,$4}'|sed 's/,//g'
mem_info=free -m |grep "Mem"|awk '{print "Total",$1,$2"M"}'
load_info=uptime |awk '{print "Current Load: "$(NF-2)}'|sed 's/\,//g'
mark_info=‘BeiJing_IDC’
echo -e “\033[32m-------------------------------------------\033[1m”
echo IPADDR:
serv_info
echo CPU_INFO:
{cpu_info2}
echo DISK_INFO:
mem_info
echo LOAD_INFO:$load_info
echo -e “\033[32m-------------------------------------------\033[0m”
echo -e -n “\033[36mYou want to write the data to the databases? \033[1m” ;read ensure
if [ “
ensure” == “y” -o “KaTeX parse error: Expected 'EOF', got '\0' at position 87: …--" echo -e '\̲0̲33[31mmysql -ua…{ip_info}’,’
{cpu_info1} X
disk_info’,‘
load_info’,’$mark_info’)” ‘’’ \033[0m ’
else
echo “wait exit…”
exit
fi
读取数据库信息:
mysql -uroot -p123 -e ‘use wugk1 ;select * from audit_audit_system;’|sed ‘s/-//g’|grep -v “id”
这样,我们可以把数据库的内容在shell脚本里面调用出来。