linux系统监控shell脚本

代码如下,实现了Linux系统的一些常见的监控变量,分享给大家@.·[email protected]

#=============================#
#Filename=system_monitor.sh
#Author:foxsir
#Date:2016-02-15
#=============================#
#!/bin/sh
clear
if [[ $# -eq 0 ]]
then
#Define Variable Reset_terminal
    Reset_terminal=$(tput sgr0)
#Check OS Type
    OS=$(uname -o)
    echo -e ‘\E[36m‘ "Operating System Type :" $Reset_terminal $OS
#Check OS Realease Version And Name
    OS_name=$(cat /etc/issue | grep "Server")
    echo -e ‘\E[36m‘ "Operating System Realease Version :" $Reset_terminal $OS_name
#Check Architecture
    Architecture=$(uname -m)
    echo -e ‘\E[36m‘ "Operating System Architecture :" $Reset_terminal $Architecture
#Check Kernel Realease
    Kernel_Realease=$(uname -r)
    echo -e ‘\E[36m‘ "Operating System Kernel Realease :" $Reset_terminal $Kernel_Realease
#Check Hostname
    Hostname=$(hostname)
    echo -e ‘\E[36m‘ "Operating System Hostname :" $Reset_terminal $Hostname
#Check Internal IP
    Internal_IP=$(hostname -I)
    echo -e ‘\E[36m‘ "Operating System Internal IP :" $Reset_terminal $Internal_IP
#Check External IP
    External_IP=$(curl -s http://ipecho.net/plain)
    echo -e ‘\E[36m‘ "Operating System External IP :" $Reset_terminal $External_IP
#Check DNS
    DNS=$(cat /etc/resolv.conf | grep "/<nameserver[ ]+"|awk ‘{print $NF}‘)
    echo -e ‘\E[36m‘ "Operating System DNS :" $Reset_terminal $DNS
#Check if connected To Internet Or Not
    ping -c2 www.baidu.com &>/dev/null && echo -e ‘\E[36m‘ "Internet : Connected" || echo ‘\E[36m‘ "Internet : Failed"
#Check Logged In Users
    who > /tmp/who
    echo -e ‘\E[36m‘ "Operating System Lgged In Users :" $Reset_terminal && cat /tmp/who
    rm -f /tmp/who
#Check OS Memory Userages
    echo -e ‘\E[36m‘ "Operating System Memory Userages :" $Reset_terminal $(cat /proc/meminfo | awk ‘/^MemTotal/{MemTotal=$2}/^MemFree/{MemFree=$2}END {print (MemTotal-MemFree)/1024,"M"}‘)
#Check App  Memory Userages
    echo -e ‘\E[36m‘ "App Memory Userages :" $Reset_terminal $(cat /proc/meminfo | awk ‘/^MemTotal/{MemTotal=$2}/^MemFree/{MemFree=$2}/^Buffers/{Buffers=$2}/^Cached/{Cached=$2}END {print (MemTotal-MemFree-Buffers-Cached)/1024,"M"}‘)
#Check OS Loadaverage
    echo -e ‘\E[36m‘ "Operating System Loadaverage :" $Reset_terminal $(top -n1b | grep "load average" | awk ‘{print $(NF-2) $(NF-1) $NF}‘)
#Check OS Diskaverage
    echo -e ‘\E[36m‘ "Operating System Diskaverage :" $Reset_terminal $(df -hP | grep -vE "%%|tmpfs" | awk ‘{print $1,$5}‘)
#Check OS Runtime
    echo -e ‘\E[36m‘ "Operating System Runtime :" $Reset_terminal $(top -n1b | grep "load average" | awk -F"[ ,]+" ‘{print $5}‘)
fi
时间: 2024-10-26 11:32:46

linux系统监控shell脚本的相关文章

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

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

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

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 ] &

Linux生产服务器Shell脚本分享

Linux生产服务器Shell脚本分享 2012-6-6 86市场网 linux 作为一名Linux/unix系统管理员,我经常遇到人问这个问题:shell能做什么?PHP这么强大,为什么不用PHP来完成工作呢?其实相对于PHP这些开发语言而言,shell主要用于数据库备份(SVN备份).计划任务(crontab).服务状态监控.FTP远程备份等.对于这些任务,shell的强大是大家都公认的,这也是每一个Linux/unix系统管理员的基本之一.现在在Windows 2008里也出现了Power

Linux之部分shell脚本练习(二)

while CONDITION;do    statementdone 进入循环:条件满足退出循环:条件不满足 until CONDITION;do    statment    ...done #!/bin/bash#read -p "Input something:" STRING while[ $STRING != 'quit'];do    echo $STRING | tr 'a-z' 'A-Z'    read -p "Input something:"

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句 一:实验环境 1):虚拟机 2):linux系统 二:实验目标 1): shell 基本语法 2):变量 3):表达式 4):判断语句 5): if表达式 三:实验脚本 第一块 一个简单的shell脚本程序 [[email protected] ~]# mkdir test [[email protected] test]# vim example1.sh #!/bin/bash #This is to show wha

Linux 系统监控、诊断工具-top,vmstat,iostat,iotop

1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器硬件配置一样,部署的软件都一样,却单单这一台负载有问题,初步猜测可能硬件有问题了. 同时,我们还需要把负载有异常的罪魁祸首揪出来,到时候从软件.硬件层面分别寻找解决方案. 2.排查: 从 top 中可以看到 load average 偏高,%wa 很高,%us 偏低: 从上图我们大致可以推断 IO

Linux中执行shell脚本的4种方法

这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下. bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/root/bin目录中并已有执行权限(添加权限的方法:chmod +x hello.sh). 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: ./ 的意思是说在当前的工作目录下执行hello.sh.如果不加上

Linux下添加shell脚本使得nginx日志每天定时切割压缩

Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常时查日志,还是使用"GoAccess"等工具对日志进行分析都将会变得非常麻烦.因此,每天定时对nginx日志进行切割压缩就非常有必要了 二 实现 我的实现思路是每天晚上接近12点时定时执行脚本.其脚本内容就是将当前的nginx日志先按照当天日期进行重命名接着进行压缩,最后是新建空白的ngi