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

#!/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"

时间: 2024-08-11 03:37:33

常用的监测系统状态shell脚本的相关文章

单台主机一键编译部署LAMP+wordpress+discuz系统的shell脚本

单台主机一键编译部署LAMP+wordpress+discuz系统的shell脚本 ? 说明: 1.shell脚本与应用程序包在同一个目录中: 2.虚拟机尽量加大CPU核数,以提高编译速度: 3.根据需要修改相应的变量,主要是安装目录.用户名.密码: 4.Mariadb的grant授权部分,需要先手动修改授权范围(@后面的内容)和密码: 5.httpd与php采用sock通讯. ? 完整的shell脚本 #!/bin/bash #*********************************

Linux常用的系统监控shell脚本

http://www.linuxqd.com下面是我常用的几个Linux系统监控的脚本,大家可以根据自己的情况在进行修改,希望能给大家一点帮助.1.查看主机网卡流量 #!/bin/bash #network #Mike.Xu while : ; do time=’date +%m”-”%d” “%k”:”%M’ day=’date +%m”-”%d’ rx_before=’ifconfig eth0|sed -n “8″p|awk ‘{print $2}’|cut -c7-’ tx_before

Centos下初始化系统的shell脚本

根据参考网上的一些文章,总结出来一个系统初始化的shell脚本 #!/bin/bash cat << EOF +---------------------------------------------------------------------------+ | Initialize for the CentOS 6_installed. | +------------------------------------------------------------------------

Ubuntu系统编写shell脚本程序一次安装多个软件包

编写shell脚本程序一次安装多个软件,主要用于一些软件依赖环境配置. 1.shell脚本程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 2.当编辑好脚本后,还必须使其可执行. 使脚本可执行: chmod +x filename 3.然后,您可以通过输入: ./filename 来执行您的脚本. 如下: 下面是我安装NS3之前,安装NS3依赖的多个软件包: 1.在vi中编

Linux系统编写shell脚本批量创建和删除用户

一.编写shell脚本批量添加用户 实现方法:判断用户是否存在,存在则返回错误提示,同时判断用户文件是否存在,不存在则退出 1.创建添加用户脚本 [[email protected] ~]# vim useradd.sh #!/bin/bashif [ $# -eq 0 ];then        echo "你没有输入任何文件!"        exit 1fi if [ ! -f $1 ];then        echo "输入有误!"        exit

系统状态检查脚本

#!/usr/bin/python # -*- coding: utf8 -*- import time import os import smtplib from email.mime.text import MIMEText # get date,time,timespace def getTime():     todayTime = []     timpeStamp=int(time.time())     timeDate = time.strftime("%Y-%m-%d"

Linux 常用命令解析及Bash Shell脚本用法示例

 摘要 Linux 命令是基于文本格式输入输出的一种程序,按照Unix哲学中强调的程序功能简单,输入宽松,输出严谨,各种程序组合可以具有更强大的功能,而具有这种灵活性的主要原因是Linux规定程序的输入输出必须坚持文件流格式,即文本格式,而这就是Linux系统的核心之一. 对于Bash,即Shell的一种,为现在主流Linux发行版本默认的命令行解释器,是一种功能强大的工具,可以实现对Linux支持的程序命令的组合,从而实现强大功能.类似于Window系统的bat文件,Bash具有更为强大的

Linux系统巡检shell脚本

#!/bin/bash #主机信息每日巡检   IPADDR=$(ifconfig eth0|grep 'inet addr'|awk -F '[ :]' '{print $13}') #环境变量PATH没设好,在cron里执行时有很多命令会找不到 export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin source /etc/profile   [ $(id -u) -gt 0 ] &

多级菜单系统安装维护shell脚本实现企业级案例

演示效果: 1.一级菜单 2.二级菜单 3.执行操作 脚本参考: #!/bin/bash #author lic(oldboy linux student) #date 1304 DISK_NO="/dev/sda1" NGINX_DIR="/usr/local/tdoa/nginx/sbin/nginx" MYSQL_DIR="/usr/local/tdoa/mysql/bin/mysqld_safe" SERVER1="WEB&qu