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

【收集电脑信息】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.lryc.cn/news/592265.html

相关文章:

  • 电脑插上u盘不显示怎么回事
  • 分表聚合助手类
  • 分布式面试点
  • RecyclerView与ListView深度对比分析
  • 从复合变量到分组分析:piecewiseSEM 解析生态系统多因子交互作用
  • UDP 协议下一发一收通信程序的实现与解析
  • Linux 定时任务全解析:atd 与 crond 的区别及实战案例(含日志备份 + 时间写入)
  • AugmentCode还没对个人开放?
  • 双通达信多板块同步
  • 如何抉择HTTPSProxy?
  • AR技术重塑电力巡检:效率提升与智能升级
  • 三维重建一: 相机几何
  • 基于ROS2进行相机标定,并通过测试相机到棋盘格之间的距离进行验证
  • Go语言实战案例-斐波那契数列生成器
  • 9. isaacsim4.2教程-ROS加相机/CLOCK
  • pgsql导出导入超过50G数据、解决方法
  • hive分区表临时加载日批数据文件
  • MyBatis 动态 SQL:让 SQL 语句随条件灵活变化
  • [源力觉醒 创作者计划]_文心一言 4.5开源深度解析:性能狂飙 + 中文专精
  • 美创科技建设项目被评为中国信通院医疗领域“磐安”优秀案例
  • 禁止拖动视频进度条来保障视频安全?
  • 西门子工业软件全球高级副总裁兼大中华区董事总经理梁乃明先生一行到访庭田科技
  • 免费PDF文件格式转换工具
  • 如何选择旅游科技行业云ERP?Oracle NetSuite助力汇智国际数智化升级
  • 【世纪龙科技】汽车故障诊断与排除仿真教学软件让课堂更高效安全
  • TCL 电视安装 APK 文件主要有 U 盘安装——仙盟创梦IDE
  • Java并发编程性能优化实践指南:锁分离与无锁设计
  • PYTHON日志神器nb_log详细介绍和使用说明
  • 数据统计模块后端架构解析:从Controller到SQL的ECharts数据对接实践
  • div和span区别