#!/bin/bash
###############################
# 系统状况分析脚本 #
# #
#用途:对系统CPU使用率、内存、#
#网络连接、磁盘空间、系统进程 #
#交易数量以及交易日志进行分析 #
#适用操作系统:Linux #
#版本:1.0 #
# #
###############################
#-----设置文件参数-----------------
FTPip=192.168.0.100
FTPuser=
FTPpasswd=
FTPdir=
#----设置系统名称
SYSNAME="SYSNAME"
#-----日期变量--------
DATE=`date +%Y%m%d_%H%M`
#------日志文件存放地点,请根据系统目录进行修改-------
#logfile=/root/checklog/tmp/chksts.log.$YESTERDAY
#logfile=/root/checklog/tmp/chksts_JZTH_122.log.$Date2
MYLOGPATH=`pwd`
logfile=$MYLOGPATH/chk_linux_$DATE.log
#-----检查系统时间-----------------
date +%Y-%m-%d> $logfile
#####################################################
#####################################################
chksysname(){
#-----系统名称------------
echo -e "\n系统名称:$SYSNAME" >> $logfile
}
chksysversion(){
#-----操作系统版本--------
echo -e "\n操作系统版本" >> $logfile
lsb_release -a >> $logfile
}
chkpcversion(){
#----服务器型号--------
echo -e "\n服务器型号" >> $logfile
dmidecode | grep Product >> $logfile
}
chkip(){
#-----系统ip地址----------------
echo -e "\n系统ip地址:"`ifconfig eth0 |grep 'inet addr' |awk '{print $2}' |awk -F ":" '{print $2}'` >> $logfile
}
chkcpu(){
#-------检查系统CPU使用率--------
echo -e "\n--------------系统CPU使用率检查-------------- " >> $logfile
vmstat | awk 'BEGIN {print "用户CPU使用率 系统CPU使用率 系统空闲CPU率"} {if($14>=0&&$14<100) printf" %s %s %s\n",$13,$14,$15}' >>$logfile
}
chkmem(){
#------检查系统内存使用率-------
echo -e "\n-------------系统内存使用率检查-------------" >> $logfile
vmstat | awk 'BEGIN {print "系统使用内存页 系统空闲内存页 "} {if($4>=0&&$4<100000000) printf" %s %s\n",$4,$6}' >> $logfile
}
chkdf(){
#-----检查文件系统空间---------
echo -e "\n--------------文件空间检查-------------- " >> $logfile
#df -k | awk 'BEGIN {print "文件系统名称 使用率"} {if($4>=0&&$4<1000000000000) printf"%-20.20s %10.10s\n", $6,$5}' >> $logfile
df -h >> $logfile
}
chknetstat(){
#-----检查网络连接---------
echo -e "\n--------------网络连接检查-------------- " >> $logfile
netstat -an | grep 'LISTEN\>'>> $logfile
}
chkjava(){
#-----检查系统进程----------
echo -e "\n-------------java进程检查--------------\n" >> $logfile
ps -ef| grep java >> $logfile
}
chksrv(){
#-----交行影像提回系统服务器检查---------------
echo -e "\n-------------srv进程检查--------------\n" >> $logfile
ps -ef| grep srv >> $logfile
}
chkmysql(){
echo -e "\n-------------mysql进程检查--------------\n" >> $logfile
ps -ef| grep mysql >> $logfile
service mysqld status >> $logfile
}
chkoracle(){
#-----检查oracle状态----------
echo -e "\n-------------oracle状态检查--------------\n" >> $logfile
su - oracle -c "lsnrctl status" >> $logfile
#------ORACLE监听文件检查-------
echo -e "\n--------------listener.ora 文件检测------\n" >> $logfile
ORACLE_HOME=`su - oracle -c env |grep ORACLE_HOME |awk -F "=" '{print $2}'`
LISTENER=$ORACLE_HOME/network/admin/listener.ora
#echo $ORACLE_HOME >> $logfile
if [ -f $LISTENER ];then
cat $LISTENER >> $logfile
else
echo -e "\nlistener.ora 文件检测失败\n" >> $logfile
fi
}
chkhosts(){
echo -e "\n--------------hosts 文件检测--------------\n" >> $logfile
cat /etc/hosts >> $logfile
}
toftp(){
#----传输日志文件----------
/usr/bin/ftp -in $FTPip <<!
user $FTPuser $FTPpasswd
cd $FTPdir
put $logfile
bye
!
}
####请将不需要的检查项注释掉###
chksysname #系统名称检查
chksysversion #操作系统版本检查
chkpcversion #服务器型号检查
chkip #操作系统ip检查
chkcpu #操作系统cpu使用率检查
chkmem #内存使用率检查
chkdf #磁盘使用率检查
chknetstat #网络连接检查
chkjava #java进程检查
#chksrv #srv进程检查
chkmysql #mysql进程检查
chkoracle #oracle状态检查
chkhosts #host文件检查
#toftp #将日志发送到FTP
echo -e "检查完毕"
echo -e "日志文件路径为:$logfile"