python3收集linux序列号
时间: 2023-07-20 16:16:10 浏览: 120
要收集 Linux 系统的序列号,需要根据不同的硬件类型选择不同的方式。以下是一些常见硬件类型的序列号获取方法:
- 获取 CPU 序列号
```python
import subprocess
# 运行 dmidecode 命令获取 CPU 信息
dmidecode_result = subprocess.run(['dmidecode', '-t', 'processor'], stdout=subprocess.PIPE).stdout.decode('utf-8')
# 解析出 CPU 信息中的序列号
cpu_serial = None
for line in dmidecode_result.split('\n'):
if 'ID:' in line:
cpu_serial = line.split('ID: ')[1].strip()
break
# 输出结果
print('CPU serial:', cpu_serial)
```
- 获取主板序列号
```python
import subprocess
# 运行 dmidecode 命令获取主板信息
dmidecode_result = subprocess.run(['dmidecode', '-t', 'baseboard'], stdout=subprocess.PIPE).stdout.decode('utf-8')
# 解析出主板信息中的序列号
board_serial = None
for line in dmidecode_result.split('\n'):
if 'Serial Number:' in line:
board_serial = line.split('Serial Number: ')[1].strip()
break
# 输出结果
print('Board serial:', board_serial)
```
- 获取硬盘序列号
```python
import subprocess
# 运行 smartctl 命令获取硬盘信息
smartctl_result = subprocess.run(['smartctl', '-i', '/dev/sda'], stdout=subprocess.PIPE).stdout.decode('utf-8')
# 解析出硬盘信息中的序列号
disk_serial = None
for line in smartctl_result.split('\n'):
if 'Serial Number:' in line:
disk_serial = line.split('Serial Number: ')[1].strip()
break
# 输出结果
print('Disk serial:', disk_serial)
```
注意,这些方法可能需要以 root 权限运行。
阅读全文