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

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

脚本功能

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

  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,一经查实,立即删除!

相关文章

设计模式七大原则-接口隔离原则InterfaceSegregation

接口隔离原则: 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上 案例: 类A通过接口Interface1依赖类B,类C通过接口Interface1依赖类D,如果接口Interface1对于类A和类c来说不是最小…

k8s-CCE使用node节点使用VIP--hostNetworkhostPort

CCE使用node节点使用VIP 背景:想在节点上使用VIP,将nodeport服务做到高可用。启动VIP后发现访问失败 部署 ! Configuration File for keepalived global_defs { router_id master-node }vrrp_instance VI_1 {state BACKUPinterface eth0mcast_src_ip 10.1.0.60virtual_rou…

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

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

11_1 Linux NFS服务与触发挂载autofs

11_1 Linux NFS服务与触发挂载服务 文章目录 11_1 Linux NFS服务与触发挂载服务[toc]1. NFS服务基础1.1 示例 2. 触发挂载autofs2.1 触发挂载基础2.2 触发挂载进阶autofs与NFS 文件共享服务:scp、FTP、web(httpd)、NFS 1. NFS服务基础 Netwo…

在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中内置了很多字符串函数&…

【面试】什么是字节码指令

目录 1. 说明2. 定义3. 组成3.1 操作码(Opcode)3.2 操作数(Operands) 4. 特点5. 与数据类型的关系6.作用 1. 说明 1.字节码指令是Java虚拟机(JVM)执行的基本单元,它由操作码(Opcode…

通用信息提取数据预处理

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…

算法:读取redis中指令查询的键

1,redis查询的代码: 只读取双引号奇数行的数 34575) "7193139"34576) "0"34577) "7078990"34578) "0"34579) "7296242"34580) "0"34581) "1650126"34582) "0"…

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

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

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

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

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

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

Helm在线部署Longhorn(1.6.0版本)分布式存储

环境依赖: k8s (版本大于等于v1.21版本)、helm工具 安装前准备 k8s worker 节点都需要执行 yum -y --setopttsflagsnoscripts install iscsi-initiator-utils echo "InitiatorName$(/sbin/iscsi-iname)" > /etc/iscsi/initiatorname.iscsi systemctl …

8.动态内存申请

知识点一&#xff1a;malloc函数和free函数 malloc函数 头文件&#xff1a;#include<stdlib.h>#include<string.h> // 用于memset函数的头文件 void *malloc(unsigned int num_ size); 形参: num_ size需要申请空间大小的字节数。 返回值&#xff1a;成功:返回…

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

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