【收集电脑信息】collect_info.sh

收集电脑信息

collect_info.sh

#!/bin/bashoutput="info.txt"
> "$output"# 1. OS Version
echo "=== 操作系统名称及版本 ===" >> "$output"
lsb_release -d | cut -f2- >> "$output"
echo -e "\n" >> "$output"# 2. Installation Time
echo "=== 系统安装时间 ===" >> "$output"
ROOT_DEVICE=$(df -h | grep "/dev/root" | awk '{print $1}')
if [ -z "$ROOT_DEVICE" ]; thenROOT_DEVICE=$(mount | grep " / " | awk '{print $1}')
fiif [ -n "$ROOT_DEVICE" ]; thenfs_create_time=$(sudo tune2fs -l "$ROOT_DEVICE" 2>/dev/null | grep "Filesystem created" | cut -d ':' -f2-)if [ -n "$fs_create_time" ]; thenecho "$fs_create_time" >> "$output"elseecho "无法获取系统安装时间(tune2fs 失败)" >> "$output"fi
elseecho "无法识别根分区设备" >> "$output"
fi
echo -e "\n" >> "$output"# 3. Disk Info
echo "=== 硬盘信息 ===" >> "$output"for disk in $(ls /dev/sd* | grep -v "[0-9]" 2>/dev/null); domodel=$(sudo hdparm -I "$disk" 2>/dev/null | grep "Model Number" | sed 's/.*: //; s/^[ \t]*//')serial=$(sudo hdparm -I "$disk" 2>/dev/null | grep "Serial Number" | sed 's/.*: //; s/^[ \t]*//')echo "设备: $disk" >> "$output"echo "型号: ${model:-N/A}" >> "$output"echo "序列号: ${serial:-N/A}" >> "$output"echo "-----------------------------" >> "$output"
doneif command -v nvme &> /dev/null; thenfor dev in $(nvme list | awk '/dev\/nvme/{print $1}' 2>/dev/null); dosn=$(sudo nvme id-ctrl "$dev" | grep -i "sn" | head -1 | awk '{print $3}' | tr -d '"')mn=$(sudo nvme id-ctrl "$dev" | grep -i "mn" | head -1 | awk '{print substr($0, index($0,$3))}' | tr -d '"')echo "设备: $dev" >> "$output"echo "型号: ${mn:-N/A}" >> "$output"echo "序列号: ${sn:-N/A}" >> "$output"echo "-----------------------------" >> "$output"done
elseecho "未安装 nvme-cli,请安装:sudo apt install nvme-cli" >> "$output"
fiif ! ls /dev/sd* > /dev/null 2>&1 && ! (command -v nvme &> /dev/null && nvme list > /dev/null 2>&1); thenecho "未检测到硬盘设备。" >> "$output"
fi
echo -e "\n" >> "$output"# 4. Network MAC Addresses
echo "=== 网卡 MAC 地址 ===" >> "$output"# === 网卡 MAC 地址 ===
echo "=== 网卡 MAC 地址 ===" >> "$output"eth_detected=0
wifi_detected=0ip link show | awk '
BEGIN {OFS=": "
}
$0 ~ /state UP/ {getlineif ($0 ~ /ether/) {mac = $2sub(/.*</, "", $1)sub(/>:.*/, "", $1)interface = $1# 根据接口名判断类型(简单规则)if (interface ~ /^en/) {print "有线网卡 ("interface"): "maceth_detected = 1} else if (interface ~ /^wl/) {print "无线网卡 ("interface"): "macwifi_detected = 1} else {print "未知网卡 ("interface"): "mac}}
}' >> "$output"# 提示未检测到的情况
if [[ "$eth_detected" -ne 1 ]]; thenecho "未检测到有线网卡。" >> "$output"
fiif [[ "$wifi_detected" -ne 1 ]]; thenecho "未检测到无线网卡。" >> "$output"
fi

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

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

相关文章

服务器清理空间--主要是conda环境清理和删除

1.查看空间情况 (base) zhouy24RL-DSlab:~/zhouy24Files$ df -h Filesystem Size Used Avail Use% Mounted on udev 252G 0 252G 0% /dev tmpfs 51G 4.9M 51G 1% /run /dev/nvme0n1p3 1.9T 1.7T 42G 98% / tmpfs 252G …

UE5多人MOBA+GAS 26、为角色添加每秒回血回蓝(番外:添加到UI上)

文章目录添加生命值和蓝量的状态标签创建无限GE并应用监听添加和去除标签每秒回复配上UI添加生命值和蓝量的状态标签 添加新的标签 CRUNCH_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Stats_Health_Full)CRUNCH_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Stats_Health_Empty)CRUNCH_API U…

MetaGPT源码剖析(三):多智能体系统的 “智能角色“ 核心实现——Role类

每一篇文章都短小精悍&#xff0c;不啰嗦。今天我们来深入剖析Role类的代码实现。在多智能体协作系统中&#xff0c;Role&#xff08;角色&#xff09;就像现实世界中的 "员工"&#xff0c;是执行具体任务、参与协作的基本单位。这段代码是 MetaGPT 框架的核心&#…

【项目经验】小智ai MCP学习笔记

理论 1、什么是MCP MCP(Model Context Protocol&#xff0c;模型上下文协议)是一种开放式协议&#xff0c;它实现了LLM与各种工具的调用。使LLM从对话、生成式AI变成了拥有调用三方工具的AI。用官方的比喻&#xff0c;MCP就是USB-C接口&#xff0c;只要实现了这个接口&#x…

Matlab学习笔记:矩阵基础

MATLAB学习笔记:矩阵基础 作为MATLAB的核心,矩阵是处理数据的基础工具。矩阵本质上是一个二维数组,由行和列组成,用于存储和操作数值数据。在本节中,我将详细讲解矩阵的所有知识点,包括创建、索引、运算、函数等,确保内容通俗易懂。我会在关键地方添加MATLAB代码示例,…

技术演进中的开发沉思-38 MFC系列:关于打印

打印程序也是MFC开发中不能忽视的一个环节&#xff0c;现在做打印开发so easy。但当年做打印开发还是挺麻烦。在当年的桌面程序里就像拼图的最后一块&#xff0c;看着简单&#xff0c;实则要把屏幕上的像素世界&#xff0c;准确映射到打印机的物理纸张上。而MFC 的打印机制就像…

Apache Ignite 长事务终止机制

这段内容讲的是 Apache Ignite 中长事务终止机制&#xff08;Long Running Transactions Termination&#xff09;&#xff0c;特别是关于分区映射交换&#xff08;Partition Map Exchange&#xff09;与事务超时设置&#xff08;Transaction Timeout&#xff09;之间的关系。下…

网络编程---TCP协议

TCP协议基础知识TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是互联网核心协议之一&#xff0c;位于传输层&#xff08;OSI第4层&#xff09;&#xff0c;为应用层提供可靠的、面向连接的、基于字节流的数据传输服务。它与IP协议共同构成…

K 近邻算法(K-Nearest Neighbors, KNN)详解及案例

K近邻算法&#xff08;K-Nearest Neighbors, KNN&#xff09;详解及案例 一、基本原理 K近邻算法是一种监督学习算法&#xff0c;核心思想是“物以类聚&#xff0c;人以群分”&#xff1a;对于一个新样本&#xff0c;通过计算它与训练集中所有样本的“距离”&#xff0c;找出距…

深入理解 Redis 集群化看门狗机制:原理、实践与风险

在分布式系统中&#xff0c;我们常常需要执行一些关键任务&#xff0c;这些任务要么必须成功执行&#xff0c;要么失败后需要明确的状态&#xff08;如回滚&#xff09;&#xff0c;并且它们的执行时间可能难以精确预测。如何确保这些任务不会被意外中断&#xff0c;或者在长时…

Python机器学习:从零基础到项目实战

目录第一部分&#xff1a;思想与基石——万法归宗&#xff0c;筑基问道第1章&#xff1a;初探智慧之境——机器学习世界观1.1 何为学习&#xff1f;从人类学习到机器智能1.2 机器学习的“前世今生”&#xff1a;一部思想与技术的演进史1.3 为何是Python&#xff1f;——数据科学…

数据库:库的操作

1&#xff1a;查看所有数据库SHOW DATABASES;2&#xff1a;创建数据库CREATE DATABASE [ IF NOT EXISTS ] 数据库名 [ CHARACTER SET 字符集编码 | COLLATE 字符集校验规则 | ENCRYPTION { Y | N } ];[]&#xff1a;可写可不写{}&#xff1a;必选一个|&#xff1a;n 选 1ENCR…

AngularJS 动画

AngularJS 动画 引言 AngularJS 是一个流行的JavaScript框架,它为开发者提供了一种构建动态Web应用的方式。在AngularJS中,动画是一个强大的功能,可以帮助我们创建出更加生动和引人注目的用户界面。本文将详细介绍AngularJS动画的原理、用法以及最佳实践。 AngularJS 动画…

SonarQube 代码分析工具

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 🧠全面掌握 SonarQube:企业代码质量保障的利器 🚀 在当今 DevOps 流水线中,代码…

vmware vsphere esxi6.5 使用工具导出镜像

注&#xff1a;为什么使用这个工具&#xff0c;我这边主要因为esxi6.5自身bug导致web导出镜像会失败一、下载VMware-ovftool到本地系统&#xff08;根据你的操作系统版本到官网下载安装&#xff0c;此处略&#xff09;以下内容默认将VMware-ovftool安装到windows 本地系统为例。…

ES 踩坑记:Set Processor 字段更新引发的 _source 污染

问题背景 社区的一个伙伴想对一个 integer 的字段类型添加一个 keyword 类型的子字段&#xff0c;然后进行精确匹配的查询优化&#xff0c;提高查询的速度。 整个索引数据量不大&#xff0c;并不想进行 reindex 这样的复杂操作&#xff0c;就想到了使用 update_by_query 的存量…

如何彻底搞定 PyCharm 中 pip install 报错 ModuleNotFoundError: No module named ‘requests’ 的问题

如何彻底搞定 PyCharm 中 pip install 报错 ModuleNotFoundError: No module named ‘requests’ 的问题 在使用 PyCharm 开发 Python 项目时&#xff0c;ModuleNotFoundError: No module named requests 是一个常见但令人头疼的问题。本篇博文将从环境配置、原因分析到多种解…

powerquery如何实现表的拼接主键

在做表过程中&#xff0c;有时候没有基表&#xff0c;这个时候就要构造完整的主键&#xff0c;这样才可以使之后匹配的数据不会因为主键不全而丢失数据 我的处理方法是吧多个表的主键拼在一起然后去重&#xff0c;构造一个单单之后之间的表作为基表去匹配数据 所以就哟啊用到自…

今日Github热门仓库推荐 第八期

今日Github热门仓库推荐2025-07-22 如果让AI分别扮演 后端开发人员和前端开发人员&#xff0c;然后看看他们分别对github每天的trending仓库感兴趣的有哪些&#xff0c;并且给出他感兴趣的理由&#xff0c;那会发生什么呢&#xff1f; 本内容通过Python AI生成&#xff0c;项…

Dify-13: 文本生成API端点

本文档提供了有关 Dify 中与文本生成相关的 API 端点的全面信息。文本生成 API 支持无会话持久性的单次请求文本生成&#xff0c;使其适用于翻译、摘要、文章写作等非对话式人工智能应用场景。 概述 文本生成 API 端点允许开发人员将 Dify 的文本生成功能集成到不需要维护对话上…