2017-01-11 | Linux | Unlock

CentOS获取系统信息的Shell脚本

 

##########################################################################
#File Name:systemmonitor.sh
#Author:Yuolvv
#Blog:http://blog.iyu.pub
##########################################################################

#!/bin/bash
#把屏幕上的内容清空
clear
if [[ $# -eq 0 ]]
then

echo -e '\E[33m'"#########################系统分析#########################"

#定义一个高亮输出的变量
output=$(tput sgr0)

#检查系统类型,使用uname -o命令
os=$(uname -o)
echo -e '\E[32m'"系统类型:"$output $os

#获取操作系统版本类型
#os_name=$(cat /etc/issue | grep -e "Server")
#os_name=$(lsb_release -a | grep -e "Description")
os_name=$(cat /etc/redhat-release)
echo -e '\E[33m'"系统版本:"$output $os_name

#获取CPU的指令集
os_bit=$(uname -m)
echo -e '\E[34m'"系统位数:"$output $os_bit

#获取内核版本
os_kernel=$(uname -r)
echo -e '\E[35m'"内核版本:"$output $os_kernel

#获取主机名¥hostname或者uname -n
hostname=$(hostname)
#获取内网IP
inner=$(hostname -I)
echo -e '\E[36m'"内网IP:"$output $inner

#获取外网IP
outer=$(curl -s http://ipecho.net/plain)
echo -e '\E[29m'"外网IP:"$output $outer

#获取DNS,从/etc/resolv.conf文件提取匹配
nameservers=$(cat /etc/resolv.conf | grep -E "\<nameserver[ ]"+|awk '{print $NF}') 
echo -e '\E[31m'"系统DNS:"$output $nameservers 

#判断当前网络的连通性,直接使用ping命令测试 
ping -c 2 www.ifeng.com &>/dev/null && echo "网络连通:yes"||echo "网络连通:no"

#检查当前登录的用户,使用who命令输出到一个临时文件中
who >/tmp/who
echo -e '\E[32m'"当前登录用户:"$output && cat /tmp/who

#命令输出后删除临时文件
rm -rf /tmp/who

echo -e '\E[33m'"##########################################################"

echo -e '\E[33m'"#########################运行状态#########################"

#获取系统已经使用的内存,通过awk命令文本进行提取,然后计算出结果转换成MB
system_men=$(awk '/MemTotal/{total=$2}/MemFree/{free=$2}END{print (total-free)/1024}' /proc/meminfo)
echo -e '\E[36m'"系统使用内存:"$output $system_men"M"

#获取应用使用内存,通过awk命令文本进行提取,然后计算出结果换算成MB
app_men=$(awk '/MemTotal/{total=$2}/MemFree/{free=$2}/Cached/{cached=$2}/Buffers/{buffers=$2}END{print (total-free-cached-buffers)/1024}' /proc/meminfo)
echo -e '\E[36m'"应用程序使用内存:"$output $app_men"M"

#获取系统CPU负载
load_average=$(top -n 1 -b | grep "load average:" | awk '{print $12 $13 $14}')
echo -e '\E[33m'"CPU负载:"$output $load_average

#获取磁盘状况
disk=$(df -hP | grep -vE 'Filesystem|tmpfs'|awk '{print $1 "总量:"$2 "已使用:"$3 "使用率:"$5}')
echo -e '\E[33m'"磁盘状况:"$output $disk

echo -e '\E[33m'"##########################################################"

else

echo "shell脚本不能运行请联系我Email:[email protected]"

fi

代码浅显易懂,也加上了注释,这里就不逐行解释了。

代码的运行方法:

1.新建个sh文件systemmonitor.sh,把上面的代码复制进去。

或者使用wget命令:

wget http://www.iyu.pub/fun/systemmonitor.sh

2.给文件执行的权限:

chmod +x systemmonitor.sh

3.运行脚本:

sh systemmonitor.sh

或者

./systemmonitor.sh

 

好了,简单的分享就到这了。

 

 

评论加载中