ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 收集AIX系统中的主机基本信息(zt anysql)

收集AIX系统中的主机基本信息(zt anysql)

原创 Linux操作系统 作者:liuxh6 时间:2019-01-28 16:54:05 0 删除 编辑
收集AIX系统中的主机基本信息

#/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博客 ” ,链接:http://blog.itpub.net/7104/viewspace-133891/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 杀进程命令
请登录后发表评论 登录
全部评论

注册时间:2002-02-24

  • 博文量
    109
  • 访问量
    80415