#/bin/sh CPU_TIME=10 if [ $# -gt 0 ];then CPU_TIME=$1 fi if [ ! "$LOGNAME" = "root" ];then echo "getsysinfo must run under root user!" exit 10 fi echo "ALTER SESSION SET CURSOR_SHARING=FORCE;" GATHER_TIME=`date +%Y%m%d%H` GATHER_HOST=`hostname` # Gather the Mount Point information TEMP_COUNT=0 RECORD="" echo "DELETE FROM TAB_MOUNT_STATS" echo " WHERE GATHER_TIME = '${GATHER_TIME}'" echo " AND HOST='${GATHER_HOST}';" for field in `df -P | tail +2` do if [ $TEMP_COUNT -lt 6 ]; then if [ $TEMP_COUNT -ne 0 -a $TEMP_COUNT -ne 4 ];then if [ $TEMP_COUNT -lt 5 ]; then RECORD="${RECORD}${field}," else RECORD="${RECORD}'${field}');" fi fi TEMP_COUNT=`expr $TEMP_COUNT + 1` fi if [ $TEMP_COUNT -eq 6 ]; then echo "INSERT INTO TAB_MOUNT_STATS VALUES('${GATHER_HOST}','${GATHER_TIME}'," echo " ${RECORD}" TEMP_COUNT=0 RECORD="" fi done echo "COMMIT;" # Gather the CPU information TEMP_COUNT=0 RECORD="" echo "DELETE FROM TAB_CPU_STATS" echo " WHERE GATHER_TIME = '${GATHER_TIME}'" echo " AND HOST='${GATHER_HOST}';" for field in `sar -uP ALL $CPU_TIME 1 | tail +5 | cut -b 9- ` do if [ $TEMP_COUNT -lt 5 ]; then if [ $TEMP_COUNT -lt 4 ]; then if [ $TEMP_COUNT -eq 0 ]; then RECORD="${RECORD}'${field}'," else RECORD="${RECORD}${field}," fi else RECORD="${RECORD}${field});" fi TEMP_COUNT=`expr $TEMP_COUNT + 1` fi if [ $TEMP_COUNT -eq 5 ]; then echo "INSERT INTO TAB_CPU_STATS VALUES('${GATHER_HOST}','${GATHER_TIME}'," echo " ${RECORD}" TEMP_COUNT=0 RECORD="" fi done echo "COMMIT;" # Gather Memory Inofrmation AVM_MEMORY=0 FREE_MEMORY=0 TEMP_COUNT=0 for field in `vmstat | tail +4` do TEMP_COUNT=`expr $TEMP_COUNT + 1` if [ $TEMP_COUNT -eq 3 ];then AVM_MEMORY=$field fi if [ $TEMP_COUNT -eq 4 ];then FREE_MEMORY=$field break fi done echo "DELETE FROM TAB_MEM_STATS" echo " WHERE GATHER_TIME='${GATHER_TIME}' AND" echo " HOST='${GATHER_HOST}';" echo "INSERT INTO TAB_MEM_STATS VALUES ('${GATHER_HOST}'," echo " '${GATHER_TIME}',${AVM_MEMORY},${FREE_MEMORY});" echo "COMMIT;" # Gahter Kernel Information TEMP_COUNT=0 K_TEXT_SZ=0 K_PROC_SZ=0 K_INODE_SZ=0 K_FILE_SZ=0 for field in `sar -v $CPU_TIME 1 | tail +5 | cut -b 9- ` do TEMP_COUNT=`expr $TEMP_COUNT + 1` if [ $TEMP_COUNT -eq 4 ];then K_TEXT_SZ=$field fi if [ $TEMP_COUNT -eq 1 ];then K_PROC_SZ=$field fi if [ $TEMP_COUNT -eq 2 ];then K_INODE_SZ=$field fi if [ $TEMP_COUNT -eq 3 ];then K_FILE_SZ=$field fi done echo "DELETE FROM TAB_KERNEL_STATS" echo " WHERE GATHER_TIME = '${GATHER_TIME}'" echo " AND HOST='${GATHER_HOST}';" echo "INSERT INTO TAB_KERNEL_STATS VALUES('${GATHER_HOST}'," echo " '${GATHER_TIME}','${K_TEXT_SZ}','${K_PROC_SZ}','${K_INODE_SZ}','${K_FILE_SZ}');" echo "COMMIT;" # Gather Device Information TEMP_COUNT=0 RECORD="" echo "DELETE FROM TAB_DISK_STATS" echo " WHERE GATHER_TIME = '${GATHER_TIME}'" echo " AND HOST='${GATHER_HOST}';" for field in `sar -d $CPU_TIME 1 | grep hdisk | cut -b 9- ` do if [ $TEMP_COUNT -lt 7 ]; then if [ $TEMP_COUNT -lt 6 ]; then if [ $TEMP_COUNT -eq 0 ]; then VG_NAME=`lspv ${field} | grep "VOLUME GROUP" | cut -b 64-` RECORD="${RECORD}'${VG_NAME}','${field}'," else RECORD="${RECORD}${field}," fi else RECORD="${RECORD}${field});" fi TEMP_COUNT=`expr $TEMP_COUNT + 1` fi if [ $TEMP_COUNT -eq 7 ]; then echo "INSERT INTO TAB_DISK_STATS VALUES('${GATHER_HOST}','${GATHER_TIME}'," echo " ${RECORD}" TEMP_COUNT=0 RECORD="" fi done echo "DELETE FROM TAB_DISK_STATS" echo " WHERE GATHER_TIME='${GATHER_TIME}' AND HOST='${GATHER_HOST}'" echo " AND BUSY+AVQUE+RW_S+BLKS_S+AVWAIT+AVSERV=0;" echo "COMMIT;" # Gather Process Information PROCESS_COUNT=`ps -ef | wc -l` echo "DELETE FROM TAB_PROCESS_STATS" echo " WHERE GATHER_TIME = '${GATHER_TIME}'" echo " AND HOST='${GATHER_HOST}';" echo "INSERT INTO TAB_PROCESS_STATS VALUES('${GATHER_HOST}'," echo " '${GATHER_TIME}',${PROCESS_COUNT});" echo "COMMIT;" # Gather Oracle Tablespace Information # echo "DELETE FROM TAB_TS_STATS" # echo " WHERE GATHER_TIME = '${GATHER_TIME}'" # echo " AND HOST='${GATHER_HOST}';" # echo "INSERT INTO TAB_TS_STATS " # echo " SELECT '${GATHER_HOST}','${GATHER_TIME}'," # echo " A.TABLESPACE_NAME,A.MBYTE_TOTAL,B.MBYTE_FREE," # echo " TRUNC(B.MBYTE_FREE/A.MBYTE_TOTAL*100,2) PERCENT_FREE " # echo " FROM (SELECT TABLESPACE_NAME,SUM(BLOCKS)*8192/1048576 MBYTE_TOTAL" # echo " FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) A, " # echo " (SELECT TABLESPACE_NAME,TRUNC(SUM(BLOCKS)*8192/1048576) MBYTE_FREE " # echo " FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) B " # echo " WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME(+);" # echo "COMMIT;" echo "EXIT;" |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7104/viewspace-133891/ ,如需转载,请注明出处,否则将追究法律责任。