运维小妙招:如何让系统信息随登录自动展现?

在日常运维工作中,及时获取系统的基本信息对于维护系统的稳定性和安全性至关重要。通过一个简单的登录脚本,我们可以在用户每次登录时自动显示系统的关键信息,这不仅提高了工作效率,还能快速定位问题。本文将介绍如何编写这样一个实用的小脚本,并详细解释其功能和实现方法。

脚本功能

该脚本主要实现以下功能:

  1. 显示系统基本信息:包括主机名、操作系统版本、内核版本等。

  2. 显示硬件信息:如CPU型号、内存使用情况等。

  3. 显示磁盘使用情况:各个挂载点的使用率。

  4. 显示网络信息:如IP地址、网络接口状态等。

  5. 显示当前系统负载:CPU负载和平均负载。

脚本实现

1. 编写脚本

以下是一个示例脚本,名为system_info.sh

#!/bin/bash# 定义颜色
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m' # 没有颜色# 获取IP地址和主机名
IP_ADDR=$(hostname -I | cut -d' ' -f1)
HOSTNAME=$(hostname)# CPU负载信息:
cpu_load() {echo -e "${CYAN}\t\t\tCPU的负载情况${NC}"echo -e "\t------------------------------------------------"echo -e "\tCPU load in 1  min is: ${YELLOW}`awk  '{printf "%15s",$1}' /proc/loadavg`${NC}"echo -e "\tCPU load in 5  min is: ${YELLOW}`awk  '{printf "%15s",$2}' /proc/loadavg`${NC}"echo -e "\tCPU load in 10 min is: ${YELLOW}`awk  '{printf "%15s",$3}' /proc/loadavg`${NC}"echo
}# 内存基本信息:
memory_info() {echo -e "${CYAN}\t\t\t内存的使用情况${NC}"echo -e "\t------------------------------------------------"echo -e "\t${GREEN}`free -h | awk '/Mem/{printf "%-10s %s","内存总容量:",$2}'`${NC}"echo -e "\t${GREEN}`free -h | awk '/Mem/{printf "%-10s %s","内存空闲容量:",$4}'`${NC}"echo -e "\t${GREEN}`free -h | awk '/Mem/{printf "%-10s %s","内存缓存:",$6}'`${NC}"echo
}# 磁盘使用量排序:
disk_rank() {echo -e "${CYAN}\t\t\t各分区使用率${NC}"echo -e "\t------------------------------------------------"df -h  -x tmpfs -x devtmpfs | sort -nr -k 5 | awk '/dev/{printf "\t%-20s %10s\n", $1, $5}'echo
}# 显示系统信息
echo
echo -e "${CYAN}\t\t\t系统基本信息:${NC}"
echo -e "\t------------------------------------------------"
echo -e "\tCurrent Time : ${GREEN}$(date)${NC}"
echo -e "\tVersion      : ${GREEN}$(cat /etc/os-release | grep -w "PRETTY_NAME" | cut -d= -f2 | tr -d '"')${NC}"
echo -e "\tKernel       : ${GREEN}$(uname -r)${NC}"
echo -e "\tUptime       : ${GREEN}$(uptime -p)${NC}"
echo -e "\tIP addr      : ${GREEN}$IP_ADDR${NC}"
echo -e "\tHostname     : ${GREEN}$HOSTNAME${NC}"
echo -e "\tCpu          : ${GREEN}$(lscpu | grep "Model name:" | sed 's/Model name:\s*//')${NC}"
echo -e "\tMemory       : ${GREEN}$(free -h | awk '/^Mem:/ { print $3 "/" $2 }')${NC}"
echo -e "\tSWAP         : ${GREEN}$(free -h | awk '/^Swap:/ { print $3 "/" $2 }')${NC}"
echo -e "\tUsers Logged : ${GREEN}$(who | wc -l) users${NC}"
echocpu_load
memory_info
disk_rank

3. 设置脚本为登录时自动执行

将脚本放置在用户主目录下,例如~/system_info.sh,然后修改.bashrc文件,使其在每次登录时自动执行该脚本:

echo "~/system_info.sh" >> ~/.bashrc

解释脚本内容

  1. 获取系统基本信息

通过hostname命令获取主机名,lsb_release -d命令获取操作系统版本,uname -r获取内核版本。

  1. 获取硬件信息

使用lscpu命令提取CPU信息,通过free -h获取内存使用情况。

  1. 获取磁盘使用情况

使用df -h命令显示各个挂载点的磁盘使用率。

  1. 获取网络信息

通过hostname -I获取IP地址,ip -o -4 addr show列出所有网络接口及其对应的IP地址。

  1. 获取系统负载

使用uptime命令提取系统负载平均值。

总结

通过以上步骤,我们实现了一个登录即显示系统信息的运维小脚本。这个脚本可以帮助运维人员在登录时快速了解系统的基本状态,从而更加高效地进行系统维护和故障排除。希望本文对大家有所帮助,也欢迎大家根据实际需求对脚本进行改进和扩展。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

写给大数据开发的,要给领导汇报什么?

上篇:写给大数据开发,如何去掌握数据分析 就像说经济学家不炒股一样,有些数据开发不喜欢讲数据📊,就很离谱…自己不讲数据,不相信数据,别人也不敢用了~ 所以找上级汇报&#xff0…

KUKA机器人KRC5控制柜面板LED显示

对于KUKA机器人新系列控制柜KRC5控制柜来说,其控制柜面板LED布局如下图: 其中①②③④分别为: 1、机器人控制柜处于不同状态时,LED显示如下: 2、机器人控制柜正在运行时: 3、机器人控制柜运行时出现的故障…

C# BindingSource 未完BindingNavigator

数据绑定导航事件数据验证自定义示例示例总结 在 C#中, BindingSource 是一个非常有用的控件,它提供了数据绑定的基础设施。 BindingSource 允许开发者将数据源(如数据库、集合、对象等)与用户界面控件(如文本框、下…

01、Linux网络设置

目录 1.1 查看及测试网络 1.1.1 查看网络配置 1、查看网络接口地址 2、查看主机状态 3、查看路由表条目 4、查看网络连接qing 1.1.2 测试网络连接 1.测试网络连接 2.跟踪数据包的路由路径 3.测试DNS域名解析 1.2 设置网络地址参数 1.2.1 使用网络配置命令 1.修改网卡…

在Linux or Windows中如何优雅的写出对拍

在Linux or Windows中如何优雅的写出对拍 一、前言二、结论1、对拍 三、对拍详解1、什么是对拍呢?🧐2、对拍的组成部分3、输入数据生成4、对拍程序5、操作流程 四、最后 一、前言 网上的对拍程序层出不穷,大多Linux和Windows中的对拍程序都是…

MySQL 函数与约束

MySQL 函数与约束 文章目录 MySQL 函数与约束1 函数1.1 字符串函数1.2 数值函数1.3 日期函数1.4 流程函数 2 约束2.1 概述2.2 约束演示2.3 外键约束2.4 删除/更新行为 1 函数 函数是指一段可以直接被另一程序调用的程序或代码。 1.1 字符串函数 MySQL中内置了很多字符串函数&…

通用信息提取数据预处理

train_data./datasets/duuie output_folder./datasets/duuie_pre ignore_datasets["DUEE", "DUEE_FIN_LITE"] schema_folder./datasets/seen_schema # 对CCKS2022 竞赛数据进行预处理 import shutil # shutil.copytree(train_data,output_folder) impor…

项目:基于httplib/消息队列负载均衡式在线OJ

文章目录 写在前面关于组件开源仓库和项目上线其他文档说明项目亮点 使用技术和环境项目宏观结构模块实现compiler模块runner模块compile_run模块compile_server模块 基于MVC结构的OJ服务什么是MVC?用户请求服务路由功能Model模块view模块Control模块 写在前面 关于…

linux安装jdk + docker+dockercompose+aliyunACR

下载安装包 链接:https://pan.baidu.com/s/1AyFvPA5qwy4IxfZoTQohrQ 提取码:6666 安装jdk jdk-8u411-linux-x64.tar.gz 链接:https://pan.baidu.com/s/1BZ7J4L5PY-9nuQyxBMDGTA 提取码:6666 1、解压jdk tar -xvf jdk-8u411-li…

如何克隆笔记本电脑上的硬盘?

笔记本电脑的信息存储在硬盘上,一旦硬盘发生故障,数据很容易丢失。克隆技术使我们能够将一个硬盘上的数据精确复制到另一个硬盘上,然后将其用作备份。此外,如果我们决定升级到更大容量或固态硬盘,克隆技术还允许我们将…

linux中xterm窗口怎么调整字体大小

需求:打开的xterm窗口字体比较小,怎么才能调整字体大小,打开的大写: 解决方法: 在home目录下搞一个设置文件 .Xresource,里面内容如下 然后把设置文件添加到 .tcshrc 文件中生效 这样重新打开的xterm字…

真北游记|三江交汇,碧海苍梧,端午去梧州吃龟苓膏

准备 t-14:高铁抢票(A) t-14:订行程(B)酒店(C) T-2:准备水、零食 T-1:物质准备:衣服、纸巾、毛巾、雨伞🌂、拖鞋、口罩😷(D&#xff0…

ARMxy赋能温室环境自动化调控

智慧农业正以其独特的魅力描绘着未来的轮廓。作为这一变革的中坚力量,ARMxy工业计算机凭借其高性能、低功耗及高度灵活性,正逐步成为智能温室控制、精准灌溉及作物生长监测领域的核心引擎。 智能温室的智慧大脑 位于某地的现代农业园区,一座…

力扣118. 杨辉三角

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1…

Python图像处理入门学习——基于霍夫变换的车道线和路沿检测

文章目录 前言一、实验内容与方法二、视频的导入、拆分、合成2.1 视频时长读取2.2 视频的拆分2.3 视频的合成 三、路沿检测3.1 路沿检测算法整体框架3.2 尝试3.3 图像处理->边缘检测(原理)3.4 Canny算子边缘检测(原理)3.5 Canny算子边缘检测(实现)3.5.1 高斯滤波3.5.2 图像转…

软件游戏steam_api.dll丢失的解决方法,总结5种有效的方法

在玩电脑游戏时,我们经常会遇到一些错误提示,其中之一就是“游戏缺少steam_api.dll”。这个问题可能让很多玩家感到困惑和烦恼。那么,究竟是什么原因导致游戏缺少steam_api.dll呢?又该如何解决这个问题呢?本文将为大家…

ISO 19115-2:2019 第6章 获取和处理元数据

6 获取和处理元数据 6.1 获取和处理要求的元数据 ISO 19115-1 确定了描述数字地理资源所需的元数据。本文件扩展了 ISO 19115-1 中确定的元数据,并确定了描述地理资源获取和处理所需的附加元数据。 6.2 获取和处理元数据包及其依赖关系 ISO 地理信息系列标准使用一个或多个…

接口测试时, 数据Mock为何如此重要?

一、为什么要mock 工作中遇到以下问题,我们可以使用mock解决: 1、无法控制第三方系统某接口的返回,返回的数据不满足要求 2、某依赖系统还未开发完成,就需要对被测系统进行测试 3、有些系统不支持重复请求,或有访问…

Qt安装时出现无法下载存档,环境配置,main中自定义类编译不过问题

1. Qt安装时出现无法下载存档 进入Qt安装程序exe所在的文件目录,一般在下载文件夹,右键打开cmd。cmd输入:对应的exe镜像提速。 .\qt-online-installer-windows-x64-4.8.0.exe --mirror https://mirrors.cloud.tencent.com/qt/ 2. 环境配置 …

Jmeter压测 —— 1秒发送1次请求

场景:有时候测试场景需要设置请求频率为一秒一次(或几秒一次)实现方法一:1、首先需要在线程组下设置循环次数(可以理解为请求的次数) 次数设置为请求300次,其中线程数跟时间自行设置 2、在设置…