当前位置: 首页 > news >正文

linux登陆硬件检测脚本

 即拿即用,各种文本各种较为难懂的字段,已注解

#!/bin/bash
#作者:pei,创作时间:2025,05,29
#欢迎登录Linux脚本检测系统硬件参数# 获取系统信息
OS_INFO=$(lsb_release -ds 2>/dev/null || cat /etc/*release 2>/dev/null | head -n1)
# "Linux标准基础信息" #2>/dev/null(将错误输出改为空),cat /etc/*release 2>/dev/null(读取发行版本信息将错误输出改为空) 
KERNEL=$(uname -r)
# "查询Linux内核版本" 
UPTIME=$(uptime -p)
# "查询系统运行时间" 
LAST_BOOT=$(who -b | awk '{print $3,$4}')
# "查询系统最后一次登录时间" # 获取CPU信息
CPU_MODEL=$(lscpu | grep 'Model name' | cut -d':' -f2 | sed 's/^ *//')
# "显示 CPU 架构信息" #sed 's/^ *//'(将行首的空格删除) 
CPU_CORES=$(lscpu | grep '^CPU(s):' | awk '{print $2}')
# "查询 CPU 核心数量" #筛选以CPU开头的字段 
CPU_THREADS=$(lscpu | grep 'Thread(s) per core' | awk '{print $4}')
# "查询每个核心的线程数" #筛选字段关于线程数的英文 
CPU_USAGE=$(top -bn1 | awk -F, '/Cpu/{print $4}' | awk '{print 100 - $1"%"}')
# "查询当前 CPU 使用率百分比" #$1(空闲比) #-F,:设置字段分隔符为逗号(,)处理前一步的输出 99.1 id 默认按空格分隔字段: $1 = 99.1(第一个字段)$2 = id(第二个字段)100 - $1:计算使用率(100 - 空闲率)"%":添加百分号 最终输出:0.9%# 获取内存信息
MEM_TOTAL=$(free -h | awk '/Mem:/ {print $2}')
# "men的总计为:" 
MEM_USED=$(free -h | awk '/Mem:/ {print $3}')
# "men的空闲空间为:" 
MEM_FREE=$(free -h | awk '/Mem:/ {print $4}')
# "men使用共享所占用的·空间为" 
MEM_AVAIL=$(free -h | awk '/Mem:/ {print $7}')
# "men可用空间为:" 
SWAP_TOTAL=$(free -h | awk '/Swap:/ {print $2}')
# "swap的总计空间为:" # 获取磁盘信息
DISK_ROOT=$(df -h / | awk 'NR==2 {print $4}')
# "根分区 (/) 的可用磁盘空间(剩余空间)为:"   #NR==2只处理第二行(跳过标题行)
DISK_HOME=$(df -h ~ | awk 'NR==2 {print $4}')
# "当前用户家目录所在分区的可用磁盘空间(剩余空间):" # 获取网络信息
PUBLIC_IP=$(curl -s ifconfig.me)
LOCAL_IP=$(hostname -I | awk '{print $1}')
GATEWAY=$(ip route | grep default | awk '{print $3}')
#"获取设备的公网、本地、网关为:"; 
# 获取GPU信息(NVIDIA专用)
GPU_INFO=$(nvidia-smi --query-gpu=gpu_name --format=csv,noheader 2>/dev/null || echo "Not Available")# 显示欢迎信息
echo -e "\n\033[1;34m===== 系统登录信息 [$(date)] =====\033[0m"
echo -e "\033[1;32m用户:\033[0m     $(whoami)"
echo -e "\033[1;32m主机名:\033[0m   $(hostname)"
echo -e "\033[1;32m系统:\033[0m     $OS_INFO"
echo -e "\033[1;32m内核:\033[0m     $KERNEL"
echo -e "\033[1;32m运行时间:\033[0m $UPTIME (上次启动: $LAST_BOOT)"# 显示硬件信息
echo -e "\n\033[1;34m===== 硬件参数 =====\033[0m"
echo -e "\033[1;33mCPU:\033[0m $CPU_MODEL"
echo -e "  |- 核心: $CPU_CORES 线程: $CPU_THREADS 使用率: $CPU_USAGE"
echo -e "\033[1;33m内存:\033[0m 总量: $MEM_TOTAL | 已用: $MEM_USED | 空闲: $MEM_FREE | 可用: $MEM_AVAIL"
echo -e "\033[1;33m交换:\033[0m $SWAP_TOTAL"
echo -e "\033[1;33m磁盘:\033[0m 根分区剩余: $DISK_ROOT | 家目录剩余: $DISK_HOME"
echo -e "\033[1;33m网络:\033[0m 公网IP: $PUBLIC_IP | 内网IP: $LOCAL_IP | 网关: $GATEWAY"
echo -e "\033[1;33mGPU:\033[0m  ${GPU_INFO}"# 安全提示
echo -e "\n\033[1;31m安全提醒:\033[0m"
echo "上次登录记录:"
last -2 $(whoami) | head -n 2 | grep -v "still"echo -e "\n\033[1;35m系统负载:\033[0m $(uptime | awk -F'[a-z]:' '{print $2}')\n"
#\033 是 ESC 字符的八进制表示(ASCII 27)[ 是固定的开始符号 <代码> 是控制文本样式的数字代码 m 是固定的结束符号

相关文章:

  • 打卡第35天:GPU训练以及类的Call方法
  • 阿姆达尔定律的演进:古斯塔夫森定律
  • HertzBeat的告警规则如何配置?
  • 如何做接口测试?
  • GPIO的内部结构与功能解析
  • Python趣学篇:Pygame重现《黑客帝国》数字雨
  • 八股学习-JS的闭包
  • Express 集成Sequelize+Sqlite3 默认开启WAL 进程间通信 Conf 打包成可执行 exe 文件
  • 全面解析 Windows CE 定制流程:从内核到设备部署
  • 垂起固定翼无人机应用及技术分析
  • 嵌入式系统:从技术原理到未来趋势(驱动程序篇)
  • 动态规划十大经典题型状态转移、模版等整理(包括leetcode、洛谷题号)
  • Oracle、PostgreSQL 与 MySQL 数据库对比分析与实践指南
  • 公司存储文件用什么比较好?
  • Git 使用规范指南
  • JavaWeb是什么?总结一下JavaWeb的体系
  • 宝塔面板安装nodejs后,通过node -v获取不到版本号,报错node: command not found
  • 安装和配置 Nginx 和 Mysql —— 一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录6
  • 原子操作与非原子操作
  • ollama的安装及加速下载技巧
  • 企业邮箱是哪个/360排名优化工具
  • 哪些网站可以做简历/互联网站
  • wordpress全站ssl/百度指数有三个功能模块
  • 个人网站空间一般多大/百度统计工具
  • 厦门南希网站建设/自己怎么做关键词优化
  • 制作的网站/百度怎么推广自己的网站