`

linux系统整体监控脚本

阅读更多
os平台:redhat linux 5

作为DBA要时刻注意系统的整体状况,我们不能人为的一直监控系统
这就需要DBA要写一些日常的监控脚本,帮助DBA分析问题,我们最近

要上个新的系统,我于是写了linux系统的整体监控脚本

monilog_timeswitch.sh :日志轮询脚本,保留最近5个监控日志,定期删除最陈旧的监控日志
moni_system.sh        :linux 系统整体监控脚本

功能:监控系统的资源使用信息,及负载信息

使用方法:把这两个脚本做成定时任务


例如:
[root@ticket-A sh]# crontab -l
*/10 * * * * sh /home/oracle/sh/moni_system.sh >> moni_system.log
00 * * * * sh /home/oracle/sh/monilog_timeswitch.sh >> monilog_timeswitch.sh.log

脚本内容如下:


[root@ticket-A sh]# more moni_system.sh

#!/bin/bash

########################################################################
#This scripts is checking your host system: the cpu ,i/o,mem,network,
#processes stat.
#  vision 1.0 Bate
#  Write by skate
#If you have some advise about it ,you can mail :810312zxg@163.com
########################################################################

cd /home/oracle/sh

#make the local language is chinese
#export LANG=zh_CN


removedate=`date +%d`
curdate=`date +%H`
logdir=/home/oracle/sh/log
logcpuuse=$logdir/cpuuse.log
logcpuload=$logdir/cpuload.log
logioload=$logdir/ioload.log
lognetworkload=$logdir/networkload.log
logsysprocess=$logdir/sysprocess.log
logmemuse=$logdir/memuse.log
lognetsession=$logdir/netsession.log


################################
#统计cpu的使用率信息
################################

#判断文件是否存在
if [ -f $logcpuuse ]
then
#echo "logfile is exist !"
if [ "$curdate" == "23" ]
then
date +"%D %r" >>$logcpuuse
sar -u 2 1 |grep all |head -1 >> $logcpuuse
else
sar -u 2 1 |grep all |head -1 >> $logcpuuse
fi
else
#touch $logfile

date > $logcpuuse
sar -u 2 2 | grep CPU >> $logcpuuse

fi

###############################
#统计cpu的负载信息
###############################

if [ -f $logcpuload ]
then
#echo "logfile is exist !"

uptime  >> $logcpuload
else
#touch $logfile
date > $logcpuload
uptime >> $logcpuload
fi


##############################
#磁盘io的负载的信息
##############################

if [ -f $logioload ]
then
date +"%D %r" >> $logioload
iostat -xd 1 1 | sed -n '2,$p' >> $logioload

else
date +"%D %r" > $logioload
iostat -xd 1 1 | sed -n '2,$p' >> $logioload
fi


#################################
#统计网络负载的信息
################################

if [ -f $lognetworkload ]
then
date +"%D %r" >> $lognetworkload
sar -n DEV 1 3| grep eth0 >> $lognetworkload

else
date +"%D %r" > $lognetworkload
sar -n DEV 1 3|head -3 |tail -1 >> $lognetworkload
sar -n DEV 1 3| grep eth0 >> $lognetworkload
fi

###################################
#统计系统进程总数信息
###################################
if [ -f $logsysprocess ]
then
date +"%D %r" >> $logsysprocess
sysnum=`ps aux | wc -l` 
oranum=` ps -ef |awk '/ora/&&/dbticket/' |wc -l`
echo "processes of system is: $sysnum" >> $logsysprocess
echo "processes of oracle is: $oranum" >> $logsysprocess
else

date +"%D %r" > $logsysprocess
sysnum=`ps aux | wc -l` 
oranum=` ps -ef |awk '/ora/&&/dbticket/' |wc -l`
echo "processes of system is: $sysnum" >> $logsysprocess
echo "processes of oracle is: $oranum" >> $logsysprocess


fi

##############################
#统计内存的信息
##############################
if [ -f $logmemuse ]
then
date +"%D %r" >> $logmemuse
free |grep -1 Mem |head -n 2|tail -1 >> $logmemuse
free | grep Swap >> $logmemuse
else
date +"%D %r" > $logmemuse
free |grep -1 Mem |head -n 2 >> $logmemuse
free | grep Swap >> $logmemuse
fi


###############################
#查看网络连接数,tcp协议
###############################
if [ -f $lognetsession ]
then
date +"%D %r" >> $lognetsession
netstat -an | grep -E "^(tcp)" | cut -c 74- | sort | uniq -c | sort -n >> $lognetsession
else
date +"%D %r" >> $lognetsession
netstat -an | grep -E "^(tcp)" | cut -c 74- | sort | uniq -c | sort -n >> $lognetsession
fi


##############################
#定期清除统计信息
#############################

if [ "$removedate" == "01" ]
then

tail -1000 $logcpuuse > $logcpuuse_bak
tail -1000 $logcpuload > $logcpuload_bak
tail -1000 $logioload > $logioload_bak
tail -1000 $lognetworkload > $lognetworkload_bak
tail -1000 $logsysprocess > $logsysprocess_bak
tail -1000 $logmemuse >  $logmemuse_bak
tail -1000 $lognetsession > $lognetsession_bak

rm -rf $logcpuuse $logcpuload $logioload $lognetworkload $logsysprocess $logmemuse $lognetsession

fi

exit 0

[root@ticket-A sh]# vi monilog_timeswitch.sh
#!/bin/bash

###################################################
#time    : 2009/03/10
#author  :skate
#desc    :auto switch log ,keep lasted five logfile
#         the lasted logfile of order is: 04,03,02,01
#####################################################

cd /home/oracle/sh/log

DIR=/home/oracle/sh/log
for file in `ls $DIR |grep -v "[0-9]"`
do
  echo $file
  size=`ls -l $file |awk '{print $5}'`
  echo $size
  if [ $size -gt 100 ]
  then
    if [ -f "$file"_01 ]
    then
       if [ -f "$file"_02 ]
       then
          if [ -f "$file"_03 ]
          then
            if [ -f "$file"_04 ]
            then
              mv -f "$file"_02  "$file"_01
              mv -f "$file"_03  "$file"_02
              mv -f "$file"_04  "$file"_03
              renamefile="$file"_04
            else
            renamefile="$file"_04
            fi
          else
            renamefile="$file"_03
          fi
       else
         renamefile="$file"_02
       fi
    else
      renamefile="$file"_01
    fi
    mv $file $renamefile
  fi

done


这个脚本只是收集了统计信息,还没有做到去分析统计信息,当达到预计的阀值就报警给相关负责人

0
0
分享到:
评论

相关推荐

    linux 运维自动监测脚本(CPU,内存,磁盘,负载),自测成功

    通过crontab调度,系统将在设定的时间自动执行监控脚本,确保在资源异常时能及时通知运维人员,从而提高系统的稳定性和可用性。 记住,为了确保脚本的正常运行,需要给予执行权限,如`chmod +x monitor.sh`,并且...

    Linux操作系统健康巡检脚本

    综上所述,“Linux操作系统健康巡检脚本”对于维护BC-Linux系统的健康状态具有举足轻重的作用。它不仅可以自动化巡检过程,提高运维效率,还可以通过定制化的巡检项和自动化的报告功能,帮助管理员在海量数据中快速...

    jmeter+linux资源监控

    例如,`top`或`htop`命令可以实时显示系统的整体资源使用情况,`iostat`和`iotop`则可以用来监控磁盘I/O,而`netstat`或`vnstat`则用于网络流量监控。 JMeter本身不直接提供系统资源监控功能,但可以通过以下方式...

    elasticsearch集群节点监控脚本异常通过mail465发送邮件通知.rar

    这个压缩包文件"elasticsearch集群节点监控脚本异常通过mail465发送邮件通知.rar"显然提供了一个自动化解决方案,用于监控Elasticsearch集群的健康状态,并在检测到异常时通过SMTP(Simple Mail Transfer Protocol)...

    Linux系统性能的远程监控.pdf

    【Linux系统性能的远程监控】 Linux操作系统在各个领域得到了广泛应用,尤其在服务器市场占据着重要地位。为了确保服务器的稳定运行,对Linux系统的性能进行实时监控至关重要。传统的监控方法依赖于操作员定期手动...

    linux内核自动提权脚本.zip

    同时,这也是一种学习Linux内核安全性的途径,可以提高系统的整体安全性。 总之,"linux内核自动提权脚本.zip"是一个包含多个内核提权方法的工具集,它揭示了黑客可能使用的攻击手段,同时也提醒我们加强系统安全...

    几个常用的Linux操作系统监控脚本代码

    ### 几个常用的Linux操作系统监控脚本代码 在Linux环境下,服务器监控是非常重要的运维工作之一。良好的监控系统能够及时发现并解决系统问题,确保服务稳定运行。本文将详细介绍几个常用的Linux监控脚本,涵盖主机...

    基于Linux系统的机房温度监控报警平台的研究与实现.pdf

    报警系统可以集成到Linux的事件处理机制中,通过脚本或守护进程实时监控数据变化,一旦达到预设条件,触发告警通知。 3. 测试与优化 完成初步开发后,需要对系统进行详尽的测试,包括传感器的准确性、数据传输的...

    linux-让多核CPU达到指定的CPU使用率脚本

    - 脚本可能通过监控`/proc/stat`文件获取CPU利用率信息,该文件提供了系统运行状态的实时统计。 - 脚本会自动排除自身占用的CPU%,确保计算的CPU使用率反映的是其他进程的使用情况。 - 当CPU使用率低于某个设定...

    linux监控系统WGCLOUD v2.3.6

    例如,Zabbix的丰富模板和强大的自动化功能,以及Grafana的美观图表和仪表板设计,都可以作为WGCLOUD的补充,提高整体监控质量和用户体验。 总之,WGCLOUD v2.3.6是一款实用的Linux监控系统,它以其轻量、高效和可...

    基于嵌入式Linux的森林远程环境监控系统.pdf

    系统的整体设计采用B/S(Browser/Server)架构,由前端监控设备和后端服务器两部分构成。前端设备包括ZC301摄像头用于捕获环境图像,SSPC100作为处理器平台,处理图像数据并连接GPRS芯片进行通信。后端服务器则运行...

    给linux的shell脚本加密(ZT).rar_Linux shell_shell 脚本_shell加密_shell脚本

    因此,加密只是安全策略的一部分,还需要结合其他安全措施,如访问控制、日志监控等,来保护系统的整体安全。 最后,记得定期更新加密方法和密钥,以应对新的安全威胁。对于高度敏感的脚本,可能需要采用多层防护,...

    Linux_系统运维之监控

    监控不仅能够帮助运维人员实时了解系统的健康状态,还能在系统出现异常时提供预警,从而预防潜在的服务中断,提高整体服务质量。此外,通过持续监控,运维团队能够识别系统瓶颈,优化资源分配,确保系统高效运行。 ...

    Linux集群内存球监控系统

    【Linux集群内存球监控系统】是一个专为Linux集群设计的内存监控解决方案,旨在实时跟踪、分析和优化集群中各个节点的内存使用情况。系统通过Java开发实现,利用Java的跨平台特性,确保在不同的Linux环境下都能稳定...

    Linux系统必知的常用运维命令使用.docx

    `top -c`命令提供了一个实时的视图,展示系统的整体运行情况,包括系统负载、CPU利用率、内存使用情况等。`-c`选项会显示完整的命令行,帮助你识别哪个进程正在消耗资源。 3. **用户与组管理**: - `groupadd`...

    oracle监控端安装包(For Linux).tar.gz

    在Linux环境下安装Oracle监控端,可以确保系统管理员能够实时跟踪和诊断任何潜在问题,从而提高系统的稳定性和效率。本安装包是专为Linux操作系统设计的,下面将详细介绍如何在Linux系统上安装和配置Oracle监控端。 ...

    linux操作系统实用教程

    1. **Linux系统基础**:介绍Linux的历史、发行版、内核以及与Unix的关系,让读者对Linux有一个整体的认识。 2. **Linux安装与启动流程**:包括如何安装Linux系统,理解Linux的启动过程,如GRUB引导加载器、内核加载...

    Linux 系统测试硬盘性能shell 脚本

    在Linux系统中,测试硬盘性能是一项重要的任务,它可以帮助我们评估磁盘的读写速度、块访问效率以及寻道时间,这些因素直接影响到系统的整体运行速度和响应能力。本文将详细解析一个使用shell脚本来测试硬盘性能的...

    loadRunner监控系统资源windows、linux、unix、oracle文档及工具.zip

    《LoadRunner监控系统资源在Windows、Linux、Unix与Oracle环境中的应用详解》 LoadRunner,作为一款强大的...掌握这些监控技巧,对于性能测试工程师来说至关重要,不仅可以提升测试效率,也有助于提升系统的整体性能。

Global site tag (gtag.js) - Google Analytics