信创系统资产清单采集脚本:主机名+IP+MAC 一键生成 CSV

原文链接:信创系统资产清单采集脚本:主机名+IP+MAC 一键生成 CSV

Hello,大家好啊!今天给大家带来一篇在信创终端操作系统上自动批量采集主机名、IP 和 MAC 并导出为 CSV 表格的实战文章!本方案使用 sshpass 和 Bash 脚本配合,支持从外部 IP 列表和密码文件中读取内容,轻松实现批量自动采集,是信创设备台账登记、资产管理、批量部署前信息归档的利器!欢迎大家点赞、转发、点个在看!

场景介绍

日常运维工作中,尤其是在以下场景下常常需要批量采集主机信息:

信创设备批量上架后登记 IP、MAC、主机名

网络规划前快速收集节点信息

离线环境中准备资产台账

自动化部署前环境清查

如果一个个登录再 copy 太低效,这时候一套 “免登录 + 自动生成 CSV” 的脚本就很有必要!

1.准备设备IP列表

pdsyw@pdsyw-PC:~/Desktop$ vim pdsyw_ip.txt
​
pdsyw@pdsyw-PC:~/Desktop$ cat pdsyw_ip.txt 
​
192.168.80.44

用 vim 创建并编辑了一个名为 pdsyw_ip.txt 的文件,内容是目标设备的 IP 地址,每行一个。此文件用于后续脚本读取目标设备列表。

img

2.准备对应密码

pdsyw@pdsyw-PC:~/Desktop$ vim pdsyw_passwd.txt
​
pdsyw@pdsyw-PC:~/Desktop$ cat pdsyw_passwd.txt
​
1 

创建一个名为 pdsyw_passwd.txt 的文件,里面存放对应设备的登录密码。支持:

所有设备共用同一个密码(如每行内容都为 1)。

每台设备一个密码(一一对应 pdsyw_ip.txt 中的 IP)。

脚本通过索引一一读取对应的密码。

img

3.编写批量采集脚本

pdsyw@pdsyw-PC:~/Desktop$ vim generate_host_list.sh
​
pdsyw@pdsyw-PC:~/Desktop$ cat generate_host_list.sh
​
#!/bin/bash
​​
output="host_list.csv"
​
echo "主机名,IP地址,MAC地址" > "$output"
​​
mapfile -t ip_list < pdsyw_ip.txt
​
mapfile -t pw_list < pdsyw_passwd.txt
​​
if [ "${#ip_list[@]}" -ne "${#pw_list[@]}" ]; then
​echo "错误:IP 和密码数量不一致"
​exit 1
​
fi
​​
for i in "${!ip_list[@]}"; do
​ip="${ip_list[$i]}"
​password="${pw_list[$i]}"
​​echo "正在采集:$ip"
​​sshpass -p "$password" ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no pdsyw@"$ip" '
​h=$(hostname)
​ipaddr=$(ip a | grep "inet " | grep -v "127.0.0.1" | awk "{print \$2}" | cut -d/ -f1 | head -n1)
​mac=$(ip link | awk "/ether/ {print \$2}" | head -n1)
​echo "$h,$ipaddr,$mac"
​' >> "$output"
​
done
​​
echo "所有采集完成,结果保存在 $output"

读取 IP 和密码,远程登录每台主机,采集主机名、IP、MAC 地址,并输出到 host_list.csv 文件中。关键步骤说明:

mapfile -t ip_list < pdsyw_ip.txt
​
mapfile -t pw_list < pdsyw_passwd.txt

将 IP 列表和密码列表分别读入数组。

if [ "${#ip_list[@]}" -ne "${#pw_list[@]}" ]; then
​echo "错误:IP 和密码数量不一致"
​exit 1
​
fi

校验 IP 与密码数量一致,防止数组越界。

sshpass -p "$password" ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no pdsyw@"$ip" '
​h=$(hostname)
​ipaddr=$(ip a | grep "inet " | grep -v "127.0.0.1" | awk "{print \$2}" | cut -d/ -f1 | head -n1)
​mac=$(ip link | awk "/ether/ {print \$2}" | head -n1)
​echo "$h,$ipaddr,$mac"
​
' >> "$output"

利用 sshpass + ssh 无交互登录远程主机,提取主机名(hostname)、IP 地址、MAC 地址。其中用户pdsyw可以根据实际情况调整。awk "{print $2}" 使用 \ 转义是为了在嵌套脚本中正确传递。

echo "主机名,IP地址,MAC地址" > "$output"

创建 CSV 文件,写入表头。

img

4.安装环境依赖

pdsyw@pdsyw-PC:~/Desktop$ sudo apt install sshpass -y

sshpass 是一个支持非交互式 SSH 密码输入的工具。它允许你用密码方式批量远程登录(适用于没有设置 SSH 密钥登录的设备)。确保主控终端可 SSH 到目标设备。

img

5.执行效果预览

pdsyw@pdsyw-PC:~/Desktop$ bash generate_host_list.sh
​
正在采集:192.168.80.44
​
Warning: Permanently added '192.168.80.44' (ECDSA) to the list of known hosts.
​
所有采集完成,结果保存在 host_list.csv

执行采集脚本,控制台实时输出当前采集的设备 IP。首次连接会自动将目标 IP 加入 known_hosts 列表。

img

6.输出文件

pdsyw@pdsyw-PC:~/Desktop$ cat host_list.csv 
​
主机名,IP地址,MAC地址
​
pdsyw-PC,192.168.80.44,00:0c:29:cf:46:a3

采集完成后,输出的文件内容是一个标准的 CSV 格式,便于后续导入 Excel 或数据库处理。

img

img

7、使用建议

*应用场景**建议操作*
台账登记使用WPS 表格打开 .csv 直接导入系统平台
网段清查一次性采集全网段设备,过滤活跃主机
离线备份将采集脚本与 .csv 一并打包归档
自动部署前检查结合设备名 / IP 反查对照配置表

通过这篇文章,你掌握了如何在信创终端环境中,使用脚本结合 SSH 免交互方式批量获取设备主机名、IP 地址和 MAC 地址,并输出为标准的 .csv 表格,极大提高了信息采集效率,也为后续批量运维打下良好基础。如果你觉得这篇文章实用,欢迎点赞、转发、收藏并点个在看,我们下次再见!

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

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

相关文章

【dify+docker安装教程】

目录 一、dify安装包下载 二、运行环境配置 1、下载docker 2、安装 2.1 新建文件夹 2.2 安装 2.3 命令安装 3.下载完成后需要重启电脑&#xff0c;注意保存文档&#xff01;&#xff01;注意保存&#xff01;&#xff01;注意&#xff01;&#xff01;&#xff08;血的教…

HTML 地理定位(Geolocation)教程

HTML 地理定位(Geolocation)教程 简介 HTML5 的 Geolocation API 允许网页应用获取用户的地理位置信息。这个功能可用于提供基于位置的服务&#xff0c;如导航、本地搜索、天气预报等。本教程将详细介绍如何在网页中实现地理定位功能。 工作原理 浏览器可以通过多种方式确定…

协作开发攻略:Git全面使用指南 — 引言

协作开发攻略&#xff1a;Git全面使用指南 — 引言 Git 是一种分布式版本控制系统&#xff0c;用于跟踪文件和目录的变更。它能帮助开发者有效管理代码版本&#xff0c;支持多人协作开发&#xff0c;方便代码合并与冲突解决&#xff0c;广泛应用于软件开发领域。 文中内容仅限技…

毕业设计-基于预训练语言模型与深度神经网络的Web入侵检测系统

项目技术说明 基于预训练语言模型与深度神经网络的Web入侵检测系统&#xff0c;通过预训练模型CodeBert分词&#xff0c;将分词输入给BiGRU的深度学习模型训练。通过sniff函数实时捕获http流量信息&#xff0c;将流量信息输入给模型进行检测&#xff0c;模型可以检测的类别有S…

[计算机科学#4]:二进制如何塑造数字世界(0和1的力量)

【核知坊】&#xff1a;释放青春想象&#xff0c;码动全新视野。 我们希望使用精简的信息传达知识的骨架&#xff0c;启发创造者开启创造之路&#xff01;&#xff01;&#xff01; 内容摘要&#xff1a; 二进制是计算机世界的基石&#xff0c;数学是世界的…

JUC中各种锁机制的应用和原理及死锁问题定位

JUC中各种锁机制的应用和原理及死锁问题定位 在互联网大厂Java求职者的面试中&#xff0c;经常会被问到关于JUC&#xff08;Java Util Concurrency&#xff09;中的各种锁机制及其应用和原理的问题。本文通过一个故事场景来展示这些问题的实际解决方案。 第一轮提问 面试官&…

配置Ubuntu18.04中的Qt Creator为中文(图文详解)

配置Qt Creator为中文 1、前言2、先设置Ubuntu系统语言为中文3、配置Qt Creator中文环境2.1 IBus输入法&#xff08;方法一&#xff09;2.2、测试IBus输入法2.21IBus输入法终端中测试2.2.2IBus输入法Qt Creator中测试 2.3、Fcitx输入法&#xff08;方法二&#xff09;2.3.1安装…

高性能服务器配置经验指南3——安装服务器可能遇到的问题及解决方法

文章目录 1、重装系统后VScode远程连接失败问题2、XRDP连接黑屏问题1. 打开文件2. 添加配置3. 重启xrdp服务 3、VScode远程免密连接问题4、Vim编辑文件时出现不同用户冲突编辑的问题 在完成 服务器基本配置和 深度学习环境准备后&#xff0c;大家应该就可以正常使用服务器了&…

PyQt6基础_QThread

目录 前置 代码&#xff1a; 运行 正常运行 QThread运行报错 视频 前置 1 PySide6.QtCore.QThread - Qt for Python QThread官方文档 2 长时间任务可以放到QThread中执行&#xff0c;避免占用主线程导致界面卡顿无法操作 代码&#xff1a; import traceback,sys fro…

Spring Boot 应用运行指南

&#x1f680; Spring Boot 应用运行指南 ⚙️ 使用 Maven &#x1f527; 运行命令 $ mvn spring-boot:run✨ 启动效果 . ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | _ | _| | _ \/ _ | \ \ \ \\\/ ___)| |_)| | | | | || (_…

jeecgboot 3.8.0 集成knife4j问题一文解决

问题描述: ​ 在cloud环境下,若应用系统配置了context-path,则无法通过网关进入后台接口管理系统 原因分析: ​ 查看请求信息发现少拼接了系统的context-path,导致无法正确请求到数据。直接使用正确的地址可以正常通过网关访问。故此确定为集成knife4j的问题。 解决办法…

【Flutter】Flutter + Unity 插件结构与通信接口封装

关联文档&#xff1a;【方案分享】Flutter Unity 跨平台三维渲染架构设计全解&#xff1a;插件封装、通信机制与热更新机制—— 支持 Android/iOS/Web 的 3D 内容嵌入与远程资源管理&#xff0c;助力 XR 项目落地 —— 支持 Android/iOS/Web 的 3D 内容嵌入与远程资源管理&…

推荐 1 款 9.3k stars 的全景式开源数据分析与可视化工具

Orama 是一个开源的数据分析与可视化项目&#xff0c;由askorama团队开发和维护。该项目旨在为用户提供一套强大而易用的工具集&#xff0c;帮助用户轻松处理和理解大规模数据&#xff0c;通过创建交互式且引人入胜的数据可视化图表&#xff0c;揭示隐藏在数据背后的深层次洞察…

关于windows API 的键鼠可控可测

相关函数解释 GetAsyncKeyState 是 Windows API 中的一个函数&#xff0c;用于判断某个虚拟键是否被按下。GetAsyncKeyState(VK_ESCAPE) 专门用于检测 Esc 键的状态。下面为你详细介绍其用法&#xff1a; 函数原型 cpp SHORT GetAsyncKeyState( int vKey ); 参数 vKey&a…

vs 安装完番茄助手visual assist 后 菜单栏不显示

vs 安装完番茄助手visual assist 后 菜单栏不显示 出现原因解决办法&#xff1a; 出现原因 vs安装完番茄助手后&#xff0c;不显示。主要原因是之前安装过&#xff0c;但是试用过期了&#xff0c;卸载后重新安装然后替换破解版的dll 导致的。 解决办法&#xff1a; 关闭vs软件…

论文导读 - 基于边缘计算、集成学习与传感器集群的便携式电子鼻系统

基于边缘计算、集成学习与传感器集群的便携式电子鼻系统 原论文地址&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S0925400522015684 引用此论文&#xff08;GB/T 7714-2015&#xff09;&#xff1a; WANG T, WU Y, ZHANG Y, et al. Portable electr…

EasyCVR视频汇聚平台助力大型生产监控项目摄像机选型与应用

一、方案背景 在300路大型生产监控项目中&#xff0c;由于生产环境复杂多样&#xff0c;涵盖室外厂区、大型车间、室内办公区域等不同场景&#xff0c;单一类型的摄像机难以满足全方位、精细化的监控需求。EasyCVR作为一款功能强大的视频融合管理平台&#xff0c;具备灵活的视…

测试用例介绍

文章目录 一、测试用例基本概念1.1 测试用例基本要素 二、测试用例的设计方法2.1 基于需求的设计方法2.2 等价类2.3 边界值2.4 错误猜测法2.6 场景设计法2.7 因果图2.5 正交排列 三、综合&#xff1a;根据某个场景去设计测试用例&#xff08;万能公式&#xff09;四、如何使用F…

基于蓝牙Beacon人员导航方案

基于蓝牙Beacon人员导航方案 一、室内定位市场痛点与技术选择 大型商场&#xff08;单层超2万㎡&#xff09;和医院&#xff08;科室超200个&#xff09;的复杂空间中&#xff0c;传统GPS信号衰减超90%&#xff0c;用户平均寻路耗时10-15分钟&#xff0c;30%购物决策因“找店…

使用vue3 脚手架创建项目

1.创建项目 并 运行 1.1 创建项目 vue create abcd 1.2 运行 创建好项目后&#xff0c;命令行会提示你运行项目 npm run serve 2.介绍各个目录 node_modules : 项目依赖包&#xff0c;其中包括很多基础依赖&#xff0c;自己也可以根据需要安装其他依赖 assets文件夹&a…