获取磁盘IO与系统负载Load的shell脚本

本节介绍的几段shell脚本,可以用于提取磁盘的I/O信息,系统负载Load信息等
 

1,提取系统负载信息

复制代码 代码如下:

#!/bin/sh
host=$(hostname)
channel=$(hostname | sed 's/[0-9]//g')
runday=$(date +%Y-%m-%d)
IPhost=$(/sbin/ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}')
i=1
 while [ $i -le 120 ];do
 rundaytime=$(date "+%Y-%m-%d %H:%M:%S")
 /bin/cat /proc/loadavg | awk -F " " '{print "'"$rundaytime"'"","$1","$2","$3","$4","$5}' >> /tmp/$(hostname)-${runday}load.txt
 /usr/bin/sar -u 1 1 | grep -v Average | /bin/sed -n '4,$p' | awk -F " " '{print "'"$rundaytime"'"","$4","$6","$7","$9}'  >>  /tmp/$(hostname)-${runday}sar.txt
 i=$((i+1))
 sleep 59
done
awk -F "," '{print "'"$host"'"",""'"$channel"'"",""'"$IPhost"'"","$1","$2","$3","$4","$5}' /tmp/$(hostname)-${runday}sar.txt > /tmp/$(hostname)${runday}sar.txt
awk -F "," '{print "'"$host"'"",""'"$channel"'"",""'"$IPhost"'"","$1","$2","$3","$4","$5","$6}' /tmp/$(hostname)-${runday}load.txt  > /tmp/$(hostname)${runday}load.txt
rm -rf /tmp/$(hostname)-${runday}sar.txt
rm -rf /tmp/$(hostname)-${runday}load.txt

2,代码2

复制代码 代码如下:

#!/bin/sh
PDIR=/monitor/nagios/shell/sarlog
runday=$(date +%Y-%m-%d)
TmpDir=/monitor/nagios/tmp
for i in `/bin/cat /monitor/nagios/shell/sarlog/machine.lst`
do
   /usr/bin/scp ${PDIR}/sarlog.sh ${i}:/root && /usr/bin/rsh ${i} /root/sarlog.sh &
done

3,代码3

复制代码 代码如下:

#!/bin/sh
PDIR=/monitor/nagios/shell/sarlog
runday=$(date +%Y-%m-%d)
TmpDir=/monitor/nagios/shell/sarlog/log
Machinelst=/monitor/nagios/shell/sarlog/machine.lst
for i in `/bin/cat /monitor/nagios/shell/sarlog/machine.lst`
do
   /usr/bin/scp ${i}:/tmp/*${runday}sar.txt ${TmpDir}
   /usr/bin/scp ${i}:/tmp/*${runday}load.txt ${TmpDir}
done
/bin/cat ${TmpDir}/*${runday}sar.txt >> ${TmpDir}/Tmp${runday}.txt
/bin/cat ${TmpDir}/*${runday}load.txt >> ${TmpDir}/${runday}loadResult.txt
count=1
Line=$(cat ${TmpDir}/Tmp${runday}.txt |wc -l)
>${TmpDir}/Result${runday}.txt
while [ "$count" -le "$Line" ]
do
        Idle=$(sed -n "${count}p" ${TmpDir}/Tmp${runday}.txt | awk -F "," '{print $8}')
        Busy=`echo "scale=2;100-$Idle"|bc`
        sed -n "${count}p" ${TmpDir}/Tmp${runday}.txt | sed  "s/$/,$Busy/g" >> ${TmpDir}/${runday}sarResult.txt
        let count=count+1
done
/usr/local/mysql/bin/mysql -u root -D nagios -pbj7n48dM  <<EOF
   load data infile '${TmpDir}/${runday}sarResult.txt' into table t_daily_stats FIELDS TERMINATED BY  ',';
   load data infile '${TmpDir}/${runday}loadResult.txt' into table t_daily_load FIELDS TERMINATED BY  ',';
EOF
rm -rf ${TmpDir}/*${runday}sar.txt
rm -rf ${TmpDir}/*${runday}load.txt
rm -rf rm -rf ${TmpDir}/*${runday}.txt

时间: 2024-09-30 03:42:59

获取磁盘IO与系统负载Load的shell脚本的相关文章

获取磁盘IO与系统负载Load的shell脚本_linux shell

1,提取系统负载信息 复制代码 代码如下: #!/bin/shhost=$(hostname)channel=$(hostname | sed 's/[0-9]//g')runday=$(date +%Y-%m-%d)IPhost=$(/sbin/ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}')i=1 while [ $i -le 120 ];do rundaytime=$(

一个Linux系统安全设置的Shell脚本的分享(适用CentOS)_linux shell

我们将常用的系统安全配置制作为一个shell脚本,只需要在服务器上运行这个shell脚本即可完成安全设置. linux的系统安全设 置Shell脚本是第二次更新,已经大量应用在某大型媒体网站体系中,加入了之前没有想到的一些安全设置.使用方法将其复制,保存为一个shell文件, 比如security.sh.将其上传到Linux服务器上,执行sh security.sh,就可以使用该脚本了! 复制代码 代码如下: #!/bin/sh# desc: setup linux system securit

读懂系统负载(Load Avg)的含义 | Devops

有过运维Linux服务器的选手,想必对于系统平均负载(load averages)参数不会陌生吧,我们可以通过top, htop, uptime这些命令找到它们(如下图),那么我们又改如何理解它们呢,今天这篇就来一起看看应该如何读懂这个load averages参数. 系统平均负载的取值分别来自1分,5分,15分这三个时间区间,对于单核CPU而言,当平均负载为0时,表示CPU完全空闲,当平均负载为1时,表示CPU为满负荷状态,但两个极端都不应出现在我们的服务器上,前者说明系统没有被充分利用到,后

阿里云云服务器Linux系统更新yum源Shell脚本_linux shell

所有执行的脚本都需要root身份来执行,执行方法:以root身份执行命令:bash xxx.sh 功能:自动检测系统并更新源 适用系统版本:兼容线上所有linux版本 执行方法:以root身份执行命令:bash update_source.sh 解决了什么问题:一键式检测系统并更新源 给客户带来了好处:用户只需执行该脚本一次即可自动检测系统并更新源. 备注:由于系统版本都有支持的周期所以部分源可能会出现不可用的情况,包括官方的源,这是正常情况 #!/bin/bash ##############

教你使用Linux系统的Shell脚本维护Oracle

系统管理员与 DBA 之间在职责方面存在差别.但实际上,这种差别通常并不明显.许多 IT 部门雇佣一些可解决数据库级以及操作系统级问题的员工.当然,Oracle 数据库本身使用操作系统资源,并能与其环境紧密交互. 此外,许多系统管理员和DBA 发现将其工作相关的任务自动化很有必要或比较方便.软件安装.系统资源监视以及系统管理涉及一些重复和容易出错的任务,而自动过程可以比手动过程更好地完成这些任务. 将这些任务自动化的方法之一是shell 脚本. Shell 脚本自 Linux 系统安装之初就起着

Linux磁盘IO监测简介

DB运行产生太多的磁盘IO的话,性能肯定会受到影响.可以借助zabbix这样的工具进行磁 盘IO的监测,或 者自己动手都可以. 我们可以从proc/diskstats中直接获取信息: 7 3 loop3 0 0 0 0 0 0 0 0 0 0 0 7 4 loop4 0 0 0 0 0 0 0 0 0 0 0 7 5 loop5 0 0 0 0 0 0 0 0 0 0 0 7 6 loop6 0 0 0 0 0 0 0 0 0 0 0 7 7 loop7 0 0 0 0 0 0 0 0 0 0

linux查看系统负载的常用命令

网站服务器经常会遇到linux系统负载的问题,那么linux下查看系统负载的命令有哪些呢? linux下查看负载的主要命令有下面一些: top, uptime,w,vmstat 1.top命令查看linux负载: 第一行解释: top - 15:13:34 up 252 days,  1:36,  1 user,  load average: 0.01, 0.01, 0.00 15:13:34 :系统当前时间 up 252 days :系统开机到现在经过了252天 1 users:当前1用户在线

Linux查看磁盘io开销的几种方法

  怎样才能快速的定位到并发高是由于磁盘io开销大呢?可以通过三种方式: 第一种:用 top 命令 中的cpu 信息观察 Top可以看到的cpu信息有: 代码如下: Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si 具体的解释如下: Tasks: 29 total 进程总数 1 run

linux查看磁盘io的几种方法

  怎样才能快速的定位到并发高是由于磁盘io开销大呢?可以通过三种方式: 第一种:用 top 命令 中的cpu 信息观察 Top可以看到的cpu信息有: Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si 具体的解释如下: Tasks: 29 total 进程总数 1 running 正