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

简介:

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


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

#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%



本文转自 小杨_Ivan 51CTO博客,原文链接:http://blog.51cto.com/aqiang/1891584

相关文章
|
2月前
|
机器学习/深度学习 算法 机器人
【PID】基于人工神经网络的PID控制器,用于更好的系统响应研究(Matlab&Simulink代码实现)
【PID】基于人工神经网络的PID控制器,用于更好的系统响应研究(Matlab&Simulink代码实现)
256 15
|
2月前
|
机器学习/深度学习 数据采集 传感器
具有多种最大功率点跟踪(MPPT)方法的光伏发电系统(P&O-增量法-人工神经网络-模糊逻辑控制-粒子群优化)之使用粒子群算法的最大功率点追踪(MPPT)(Simulink仿真实现)
具有多种最大功率点跟踪(MPPT)方法的光伏发电系统(P&O-增量法-人工神经网络-模糊逻辑控制-粒子群优化)之使用粒子群算法的最大功率点追踪(MPPT)(Simulink仿真实现)
217 0
|
11天前
|
Ubuntu 网络协议 网络安全
解决Ubuntu系统的网络连接问题
以上步骤通常可以帮助解决大多数Ubuntu系统的网络连接问题。如果问题仍然存在,可能需要更深入的诊断,或考虑联系网络管理员或专业技术人员。
190 18
|
26天前
|
监控 安全 网络协议
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
189 1
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
|
28天前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
111 2
|
2月前
|
安全 KVM 虚拟化
Cisco Identity Services Engine (ISE) 3.4 - 基于身份的网络访问控制和策略实施系统
Cisco Identity Services Engine (ISE) 3.4 - 基于身份的网络访问控制和策略实施系统
153 2
Cisco Identity Services Engine (ISE) 3.4 - 基于身份的网络访问控制和策略实施系统
|
22天前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
194 0
|
2月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
161 18
|
运维 安全 Devops
Cisco NX-OS ACI 16.1(4h)F 发布 - 适用于 ACI 模式下的 Cisco Nexus 9000 系列交换机系统软件
Cisco NX-OS ACI 16.1(4h)F 发布 - 适用于 ACI 模式下的 Cisco Nexus 9000 系列交换机系统软件
47 0
|
2月前
|
机器学习/深度学习 数据采集 算法
【电力系统】MATLAB环境下基于神经网络的电力系统稳定性预测研究(Matlab代码实现)
【电力系统】MATLAB环境下基于神经网络的电力系统稳定性预测研究(Matlab代码实现)

推荐镜像

更多