服务器利用率的神器脚本

在服务器管理的过程中,了解服务器的各项性能指标是至关重要的。无论是CPU的负载情况,内存使用情况,还是硬盘的存储空间以及TCP连接状态,这些都是我们判断服务器健康状态和性能的重要依据。然而,手动一项项去检查这些指标,既繁琐又耗时。现在,有一个神奇的脚本可以帮你一键查看所有这些关键信息!

这个脚本包含了四个功能强大的函数,分别能查看CPU使用率、内存使用情况、硬盘空间以及TCP连接状态。让我们一起来详细了解一下这个脚本的魔力所在吧!

1. CPU使用情况一目了然

通过cpu函数,你能够迅速获取CPU的使用率和等待磁盘IO的相应使用率。这两个指标对于评估服务器的运算能力和磁盘性能至关重要。

这段代码通过vmstat命令获取CPU的使用数据,并经过awk处理,最后输出我们关心的使用率指标。

2. 内存使用情况尽在掌握

memory函数则为你提供了服务器内存的总大小、已使用量和剩余量的详细数据。通过这些信息,你可以轻松判断服务器的内存是否充足,是否需要扩容。

 

该函数利用free -m命令来获取内存的使用情况,并通过awk进行数据处理,最终输出清晰易懂的内存使用情况报告。

3. 硬盘空间了如指掌

通过disk函数,你可以查看服务器上所有硬盘分区的挂载点、总大小、已使用空间和使用率。这对于监控磁盘空间的使用情况,预防磁盘满载至关重要。

 

这个函数通过df -h命令获取硬盘的使用数据,并结合awk进行处理,为你提供详细的硬盘空间报告。

4. TCP连接状态清晰可见

最后,tcp_status函数能够展示当前服务器上所有的TCP连接状态。这对于监控网络连接、发现潜在的网络问题非常有帮助。

 

此函数利用ss -antp命令来获取TCP连接的状态,并通过awk进行统计,最终输出各种状态的TCP连接数量。

脚本:

#!/bin/bash  
# 定义cpu函数,用于显示CPU使用率和等待磁盘IO的相应使用率  function cpu(){      # 使用vmstat命令获取CPU的用户态和系统态使用率之和      util=$(vmstat | awk '{if(NR==3)print $13+$14}')      # 使用vmstat命令获取CPU的等待磁盘IO的相应使用率      iowait=$(vmstat | awk '{if(NR==3)print $16}')      # 输出CPU使用率和等待磁盘IO的相应使用率      echo "CPU -使用率:${util}% ,等待磁盘IO相应使用率:${iowait}%"  }    # 定义memory函数,用于显示内存的总大小、已使用量和剩余量  function memory (){      # 使用free命令获取总内存大小(单位转换为G)      total=`free -m |awk '{if(NR==2)printf "%.1f",$2/1024}'`      # 使用free命令获取已使用的内存大小(单位转换为G)      used=`free -m |awk '{if(NR==2) printf "%.1f",($2-$NF)/1024}'`      # 使用free命令获取剩余的内存大小(单位转换为G)      available=`free -m |awk '{if(NR==2) printf "%.1f",$NF/1024}'`      # 输出内存的总大小、已使用量和剩余量      echo "内存 - 总大小: ${total}G , 使用: ${used}G , 剩余: ${available}G"  }    # 定义disk函数,用于显示硬盘的挂载点、总大小、已使用空间和使用率  disk(){      # 使用df命令获取所有硬盘分区的设备名称      fs=$(df -h |awk '/^\/dev/{print $1}')      # 遍历每个硬盘分区      for p in $fs; do          # 使用df命令获取分区的挂载点          mounted=$(df -h |awk '$1=="'$p'"{print $NF}')          # 使用df命令获取分区的总大小          size=$(df -h |awk '$1=="'$p'"{print $2}')          # 使用df命令获取分区已使用的空间          used=$(df -h |awk '$1=="'$p'"{print $3}')          # 使用df命令获取分区的使用率          used_percent=$(df -h |awk '$1=="'$p'"{print $5}')          # 输出分区的挂载点、总大小、已使用空间和使用率          echo "硬盘 - 挂载点: $mounted , 总大小: $size , 使用: $used , 使用率: $used_percent"      done  }    # 定义tcp_status函数,用于显示TCP连接状态  function tcp_status() {      # 使用ss命令获取TCP连接状态,并使用awk进行统计      summary=$(ss -antp |awk '{status[$1]++}END{for(i in status) printf i":"status[i]" "}')      # 输出TCP连接状态统计结果      echo "TCP连接状态 - $summary"  }    # 调用各个函数,显示相关信息  cpu  memory  disk  tcp_status

总结:

这个神奇的脚本将复杂的服务器性能监控变得简单而直观。只需一键运行,你就能获取到服务器的各项关键性能指标,为你的服务器管理提供强大的数据支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/624439.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI 深夜发布 GPT-4o,强到让人恐怖,这还是AI?!又一批人将面临失业...

文章首发于公众号:X小鹿AI副业 大家好,我是程序员X小鹿,前互联网大厂程序员,自由职业2年,也一名 AIGC 爱好者,持续分享更多前沿的「AI 工具」和「AI副业玩法」,欢迎一起交流~ 看了 OpenAI 最新的…

祝贺誉天杨峰老师率先通过HCIE-openEuler认证!

热烈祝贺誉天教育杨峰老师4月29日成功通过HCIE-openEuler认证! 杨峰老师HCIE-openEuler证书 作为HCIP-openEuler全国首位通过者,杨峰老师凭借他深厚的专业知识、丰富的实践经验和不懈的努力,成功通过了华为认证的HCIE-openEuler专家级认证&a…

Edge(微软)——一款充满创新精神的浏览器

随着科技的不断进步,互联网浏览器已经成为我们日常生活中不可或缺的工具。在这个领域,微软Edge作为一款新型的浏览器,凭借其独特的功能和优秀的性能,逐渐在市场上占据了一席之地。本文将深入探索微软Edge的特点、优势以及它如何改…

渗透神器:burpsuit教程

前言:释疑解惑 《BP使用教程一》发布后,后台收到了许多小伙伴的私信问BP是怎么汉化的,在这里统一为大家解答一下。 BP的汉化依赖于汉化jar包,在启动时引入汉化包即可,废话不多说,直接上命令: …

富锂锰基材料极具发展潜力 我国产业化进程加速

富锂锰基材料极具发展潜力 我国产业化进程加速 富锂锰基材料以锰元素为主,我国锰资源较丰富,相比于铁锂材料、高镍三元材料,富锂锰基材料具有一定的降本潜力。此外富锂锰基材料在能量密度、充放电倍率等方面也具有明显优势。富锂锰基材料是富…

【计算机毕业设计】ssm框架的购物网站

现代经济快节奏发展以及不断完善升级的信息化技术,让传统 数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本网上超市系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&#xff…

Fortran 最全介绍

省流: Fortran (Formula Translator,“公式翻译器”),由John Backus发明。1954年在纽约正式发布,称为FORTRAN Ⅰ。1957年第一个FORTRAN编译器在IBM704计算机上实现,FORTRAN I在IBM704系统上运行…

nodejs里面的 http 模块介绍和使用

Node.js的HTTP模块是一个核心模块,它提供了很多功能来创建HTTP服务器和发送HTTP请求。 http.Server是一个基于事件的http服务器,内部是由c实现的,接口是由JavaScript封装。 http.request是一个http客户端工具。 用户向服务器发送数据。 创…

泰山众筹:创新电商模式引领共赢新潮流

一、泰山众筹模式创新解读 泰山众筹,这一电商领域的创新模式,通过巧妙地将产品销售与积分众筹相结合,为用户和平台带来了双赢的局面。在泰山众筹模式下,用户购买产品的同时能够积累积分,这些积分可以作为参与众筹的筹…

初探 JUC 并发编程:Java 中的并发队列 ConcurrentLinkedQueue 源码级解析

第七部分:Java 并发包中并发队列解析 7.1)ConcurrentLinkedQueue 原理探究 7.1.1)类图结构 ConcurrentLinkedQueue 底层通过单向链表的方式实现,其中有两个 volatile 类型的 Node 节点用来表示队列的首、尾节点。 public Concu…

市场对节能高效电机需求不断增长 变频器具有广阔发展空间

市场对节能高效电机需求不断增长 变频器具有广阔发展空间 变频器是利用变频技术与微电子技术,通过改变电机工作电源频率方式来控制交流电动机的电力控制设备,主要由制动单元、检测单元、微处理单元等部分构成。变频器能够根据需要调整电机的转速&#xf…

如何基于可靠事件模式实现最终一致性?

今天我们一起来探讨一个分布式环境下的常见问题,这个问题与数据的一致性有关。那么,什么是数据一致性呢?要回答这个问题,需要我们回顾一下单块系统和分布式系统中对于数据处理的不同需求。 我们知道,传统的单块系统通常都只与一个数据库进行交互,所有的数据处理过程都位于…

混淆矩阵实战

2.实战 1.加载数据 #加载数据 import pandas as pd import numpy as np data pd.read_csv(data_class_raw.csv) data.head()2.data.loc得到样本属性,并进行样本数据可视化 #可视化数据 %matplotlib inline from matplotlib import pyplot as plt#define X and y…

政安晨:【Keras机器学习示例演绎】(四十一)—— 使用预先训练的词嵌入

目录 设置 简介 下载新闻组 20 数据 让我们来看看这些数据 清洗数据并将数据分成训练集和验证集 创建词汇索引 加载预训练的词嵌入 建立模型 训练模型 导出端到端模型 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与…

【Unity】为小球添加爆发力往前移动的代码

代码里的几个变量都需要在场景中提前创建好并赋值 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Shotobjt : MonoBehaviour {// 点击按钮,克隆一个prefab,然后给这个克隆后的对象添加往前方的力publi…

TCP/UDP通信中的部分函数

UDP(User Datagram Protocol,用户数据报协议)和TCP(Transmission Control Protocol,传输控制协议)是互联网协议套件中最常用的两种传输层协议,它们负责在互联网中端到端地传输数据。尽管它们服务…

链表常见OJ题

目录 题目一:移除链表元素 (1)题目链接 (2)题目要求 (3)题解 题目二:反转链表 (1)题目链接 (2)题目要求​编辑 (3…

【PostgreSQL里的子查询解析】

什么是子查询? 子查询是一种嵌套在其他SQL查询中的查询方式,也可以称作内查询或嵌套查询。当一个查询是另一个查询的条件时,就称之为子查询。子查询的语法格式与普通查询相同,但其在查询过程中起着临时结果集的作用,为…

冰川秘境:全球冰川可视化大屏带你穿越冰原

在浩瀚无垠的宇宙中,地球以其独特的蓝色光环吸引着人们的目光。而在这颗蓝色星球上,冰川这一大自然的杰作,更是以其壮美与神秘,让人们心驰神往。 从阿尔卑斯山脉的冰川到南极洲的冰盖,从格陵兰岛的冰山到喜马拉雅山脉的…