设为首页 收藏本站
查看: 704|回复: 0

常用的监测系统状态shell脚本

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-18 09:00:10 | 显示全部楼层 |阅读模式
#!/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"


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-140528-1-1.html 上篇帖子: shell自动收集服务器硬件系统信息通过web页面显示 下篇帖子: linux shell变量获取执行结果
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表