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

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

脚本功能

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

  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}"
echo

cpu_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命令提取系统负载平均值。

总结

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

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

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

相关文章

ELK组件

资源列表 操作系统 IP 主机名 Centos7 192.168.10.51 node1 Centos7 192.168.10.52 node2 部署ELK日志分析系统 时间同步 chronyc sources -v 添加hosts解析 cat >> /etc/hosts << EOF 192.168.10.51 node1 192.168.10.52 node2 EOF 部署Elasticsea…

双Token方案实现Token自动续期(基于springboot+vue前后端分离项目)

文章目录 前言一、双Token方案介绍1. 令牌类型与功能2.双Token方案的优点3.实现流程 二、具体实现1.后端实现1.1 jwt工具类1.2 响应工具类1.3 实体类1.4 过滤器1.5 controller1.6 启动类 2、前端实现2.1 登录页面2.2 index页面2.3 请求拦截器和响应拦截器 效果展示 前言 更多j…

rce漏洞试试看 buuctf的pingpingping 试试ctf的rce怎么样

打开靶机开始操作 然后我们先知道一些知识点&#xff1a;下面这些是常用的 |这个管道符也就是上一条的命令的输出结果作为下一条命令的输入&#xff1b;这个是跟sql的堆叠注入是一样的|| || 当前面的执行出错时&#xff08;为假&#xff09;执行后面的 & 将任务置于后台执…

基于pytoch卷积神经网络水质图像分类实战

具体怎么学习pytorch&#xff0c;看b站刘二大人的视频。 完整代码&#xff1a; import numpy as np import os from PIL import Image import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data…

模板显式、隐式实例化和(偏)特化、具体化的详细分析

最近看了<The C Programing Language>看到了模板的特化&#xff0c;突然想起来<C Primer>上说的显式具体化、隐式具体化、特化、偏特化、具体化等概念弄得头晕脑胀&#xff0c;我在网上了找了好多帖子&#xff0c;才把概念给理清楚。 看着这么多叫法&#xff0c;其…

晨控CK-UR12-E01与欧姆龙NX/NJ系列EtherNet/IP通讯手册

晨控CK-UR12-E01与欧姆龙NX/NJ系列EtherNet/IP通讯手册 晨控CK-UR12-E01 是天线一体式超高频读写器头&#xff0c;工作频率默认为902MHz&#xff5e;928MHz&#xff0c;符合EPC Global Class l Gen 2&#xff0f;IS0-18000-6C 标准&#xff0c;最大输出功率 33dBm。读卡器同时…

C语言怎样初始化图形模式?

一、问题 在C语⾔中&#xff0c;initgraph( ) 函数⽤于初始化图形模式。初始化时&#xff0c;那么多参数都是⼲什么的&#xff1f;怎样设置&#xff1f; 二、解答 initgraph( ) 函数⽤于初始化图形模式&#xff0c;其语法格式如下。 void far initgraph(int far * gdriver, i…

0基础学习区块链技术——入门

大纲 区块链构成区块链相关技术Hash算法区块链区块链交易 参考资料 本文力求简单&#xff0c;不讨论任何技术细节&#xff0c;只是从简单的组成来介绍区块链技术&#xff0c;以方便大家快速入门。同时借助一些可视化工具&#xff0c;辅助大家有直观的认识。 区块链构成 顾名思…

python导入非当前目录(如:父目录)下的内容

在开发python项目时&#xff0c;通常会划分不同的目录&#xff0c;甚至不同层级的目录&#xff0c;这时如果直接导入不在当前目录下的内容时&#xff0c;会报如下的错误&#xff1a;ModuleNotFoundError: No module named miniai其实这里跟操作系统的环境变量很类似的&#xff…

绘唐官网绘唐科技

绘唐AI工具是一种基于人工智能技术的绘画辅助工具。 使用教程&#xff1a;https://iimenvrieak.feishu.cn/docx/CWwldSUU2okj0wxmnA0cHOdjnF 它可以根据用户提供的输入或指令生成各种类型的图像。 绘唐AI工具可以理解用户的绘画需求&#xff0c;并根据用户的要求生成具有艺术…

文件操作(Python和C++版)

一、C版 程序运行时产生的数据都属于临时数据&#xff0c;程序—旦运行结束都会被释放通过文件可以将数据持久化 C中对文件操作需要包含头文件< fstream > 文件类型分为两种: 1. 文本文件 - 文件以文本的ASCII码形式存储在计算机中 2. 二进制文件- 文件以文本的二进…

【图解IO与Netty系列】Netty核心组件解析

Netty核心组件解析 Bootstrap & ServerBootstrapEventLoop & EventLoopGroupChannelChannelHandler & ChannelPipeline & ChannelHandlerContextChannelHandlerChannelPipelineChannelHandlerContext ChannelFuture Bootstrap & ServerBootstrap Bootstra…

免费!GPT-4o发布,实时语音视频丝滑交互

We’re announcing GPT-4o, our new flagship model that can reason across audio, vision, and text in real time. 5月14日凌晨&#xff0c;OpenAI召开了春季发布会&#xff0c;发布会上公布了新一代旗舰型生成式人工智能大模型【GPT-4o】&#xff0c;并表示该模型对所有免费…

AI智能体做高考志愿填报分析

关注公众号&#xff0c;赠送AI/Python/Linux资料&#xff0c;对AI智能体有兴趣的朋友也可以添加一起交流 高考正在进行时&#xff0c;学生焦虑考试&#xff0c;家长们焦虑的则是高考志愿怎么填。毕竟一个好的学校&#xff0c;好的专业是进入社会的第一个敲门砖 你看张雪峰老师…

Tomcat源码解析(八):一个请求的执行流程(附Tomcat整体总结)

Tomcat源码系列文章 Tomcat源码解析(一)&#xff1a;Tomcat整体架构 Tomcat源码解析(二)&#xff1a;Bootstrap和Catalina Tomcat源码解析(三)&#xff1a;LifeCycle生命周期管理 Tomcat源码解析(四)&#xff1a;StandardServer和StandardService Tomcat源码解析(五)&…

Python opencv读取深度图,网格化显示深度

效果图&#xff1a; 代码&#xff1a; import cv2 import osimg_path "./outdir/180m_norm_depth.png" depth_img cv2.imread(img_path, cv2.IMREAD_ANYDEPTH) filename os.path.basename(img_path) img_hig, img_wid depth_img.shape # (1080, 1920) print(de…

设计模式- 责任链模式(行为型)

责任链模式 责任链模式是一种行为模式&#xff0c;它为请求创建一个接收者对象的链&#xff0c;解耦了请求的发送者和接收者。责任链模式将多个处理器串联起来形成一条处理请求的链。 图解 角色 抽象处理者&#xff1a; 一个处理请求的接口&#xff0c;可以通过设置返回值的方…

Python基础教程(八):迭代器与生成器编程

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

Buildroot和Debian文件系统修改方法

本文档主要介绍在没有编译环境的情况下&#xff0c;如何修改buildroot和debian文件系统方法&#xff0c;如在buildroot文件系统中添加文件、修改目录等文件操作&#xff0c;在debian文件系统中&#xff0c;安装软件库、工具、扩大文件系统空间等等操作。 1.Debian文件系统 …