功能一:能够提取操作系统的基本信息(内核、系统版本、网络地址等)

#############################################################################

#File Name:System_monitor.sh

#Author:Ivan

#############################################################################

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

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 我们就简单使用请求这个http地址后返回的信息

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.toutiao.com &>/dev/null && echo "网络连通:yes" || echo "网络连通:no"

#检查当前登录的用户 使用who命令输出到一个临时文件中

who >/tmp/who

echo -e '\E[32m'"当前登录用户:"$output && cat /tmp/who

#记得把临时文件给删掉

rm -rf /tmp/who

echo "#############################"

#功能二:能够分析系统的运行状态(CPU负载、内存以及磁盘的使用率等)

#使用free -m 可以查看内存的使用情况

#我们要取的是系统使用内存和应用使用内存

#系统使用内存=total-free 而 应用使用内存=total-(free+buffers+cached)

#在/proc/meminfo文件就是内存情况的目录

#获取系统已经使用的内存通过awk命令文本进行提取然后计算出结果换算成Mb

system_men=$(awk '/MemTotal/{total=$2}/MemFree/{free=$2}END{print (total-free)/1024}' /proc/meminfo)

#获取应用使用内存通过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 $system_men"M"

echo -e '\E[36m'"应用程序使用内存:"$output $app_men"M"

#接下来就是操作下系统CPU负载这一块了,我们可以用top命令进行查看

#top -n 1 -b|grep "load average:"

#再使用awk进行空格划分提取我们想要的load average

#top -n 1 -b|grep "load average:"|awk '{print $12 $13 $14}'

load_average=$(top -n 1 -b|grep "load average:"|awk '{print $12 $13 $14}')

echo -e '\E[33m'"负载情况:"$output $load_average

#最后就是磁盘分析了,老规矩,首先我们使用df -h 命令看看

#在我们就来将它格式化输出一下

#df -hP|grep -vE 'Filesystem|tmpfs'|awk '{print $1 " Size:"$2 " used:"$3 " use%:"$5}'

disk=$(df -hP|grep -vE 'Filesystem|tmpfs'|awk '{print $1 " 总量:"$2 " 已使用:"$3 " 使用率:"$5}')

echo -e '\E[34m'"磁盘情况:"$output $disk

else

echo "请不要传递参数!"

fi

注意:标红色字体的,可以不加入到脚本中

运行后的效果:

###########系统分析##########

系统类型: GNU/Linux

系统版本: CentOS release 6.6 (Final)

系统位数: x86_64

内核版本: 2.6.32-504.el6.x86_64

内网ip: 172.16.1.237

外网ip: x.x.x.x

系统DNS: 8.8.8.8 211.136.192.6

网络连通:yes

当前登录用户:

root     pts/1        2017-01-12 20:14 (x.x.x.x)

#############################

系统使用内存: 3387.73M

应用程序使用内存: 1084.01M

负载情况: 0.00,0.00,0.00

磁盘情况: /dev/mapper/vg_itcacti-LogVol00 总量:287G 已使用:3.9G 使用率:2% /dev/sda1 总量:477M 已使用:32M 使用率:8%

转载于:https://blog.51cto.com/aqiang/1891584

提取操作系统的基本信息(内核、系统版本、网络地址等)相关推荐

  1. Linux查看内核和系统版本信息

    查看Linux内核版本 方式一. uname uname(英文全拼:unix name)命令用于显示系统信息. 语法 uname [-amnrsv][--help][--version] 参数说明: ...

  2. 查看Linux系统版本内核命令大全

    目录 命令一:查看当前系统发行版本详细信息 命令二:查看当前系统内核信息 命令三:查看当前系统版本信息 命令四:查看CPU相关信息 命令五:查看系统位数 Linux系统内核.发行版本有很多,那么如何查 ...

  3. 查询linux版本信息 sp,查看Linux系统版本和内核信息

    Linux 查看Linux系统版本信息 1. 查看内核版本 1) 方法一:登录到linux执行cat /proc/version [[email protected]_32bit_ip12 ~]$ c ...

  4. 查看Linux内核版本、系统版本命令

    一.查看Linux内核版本命令(两种方法): 1.cat /proc/version2.uname -a 二.查看Linux系统版本的命令(3种方法): 1.lsb_release -a 即可列出所有 ...

  5. 查看linux的系统命令,命令行查看Linux的系统版本和内核版本以及机器字长

    查看Linux版本 1.  lsb_release -a        (适用于所有linux) 复制代码 代码如下: LSB Version: :base-4.0-ia32:base-4.0-noa ...

  6. 查看linux系统版本,内核,CPU,MEM,位数的相关命令

    查看linux系统版本,内核,CPU,MEM,位数的相关命令 1.查看版本,内核 cat /etc/issue cat /proc/version uname -r 2.查看cpu,mem grep ...

  7. Linux:查看服务器信息,CPU、内存、系统版本、内核版本等

    还是最近工作的总结,性能验证要根据服务器的配置才能做进一步的结论论证,废话不多说 目录 查看Linux内核版本 查看Linux系统版本 CPU 查看CPU信息(型号) 物理CPU个数 每个物理CPU中 ...

  8. 查看CentOS系统版本、内核版本、计算机名

    1.查看已经安装的CentOS系统版本信息 cat /proc/version 可以看出我的系统版本为Linux version 3.10.0-957.el7.x86_64  2.查看Centos内核 ...

  9. kali linux查看系统版本、内核

    一.查看系统版本 方法一: cat /etc/issue 方法二: lsb_release -a Distributor ID: Kali Description: Kali GNU/Linux Ro ...

最新文章

  1. STM32固件库文件树及构成详解
  2. Android SQLite数据库的基本操作-SQLiteDatabase
  3. qt web混合编程_QT做界面真是绝美,并且还可嵌入HTML与JS做界面(许多案例)
  4. java 获取类加载器_java-如何从类加载器获取类路径?
  5. msvcrt python linux,Python msvcrt.CrtSetReportMode方法代码示例
  6. (57)UART外设驱动波特率(二)(第12天)
  7. 硬件平台(1)---骁龙710移动平台强势来袭
  8. 别以为用留言簿留言骂我我就查不出来!哼~
  9. Spring数据转换(二)-- @InitBinder
  10. 面试官最后说,你还有什么要问的吗?
  11. 深空天体反差指数计算
  12. excel单元格内容拆分_Excel批量合并相同内容的单元格
  13. 怎样在VS中用C++调用METIS提供的API
  14. zoc license code
  15. Nexus简介及小白使用IDEA打包上传到Nexus3私服详细教程
  16. 诗词锦集(持续更新)
  17. PostgreSQL row number
  18. 微信小程序:“去中心化”的社交电商,电商正转向以商品为核心
  19. iOS 获取网络时间
  20. Kibana--KQL和Lucene的区别

热门文章

  1. ubuntu ibus谷歌输入法安装
  2. 数据库技巧——MySQL十大优化技巧
  3. 使用Vue.js进行数据绑定以及父子组件传值
  4. 计算机图形学----基于3D图形开发技术 (韩正贤 著)
  5. LeetCode 26 号问题 删除数组中的重复项
  6. SpringCloud配置中心-Config
  7. 『PyTorch』第五弹_深入理解autograd_中:Variable梯度探究
  8. python (ploit3)hexun
  9. Android WindowManager 解析与骗取 QQ 密码案例分析
  10. 在某些情况下明明添加了引用,为何VS还报错XXX不存在类型或命名空间(是否缺少程序集引用)...