python 脚本:长跑之前检查 linux下获取”cat /proc/cpuinfo | grep -i 'Model name' | awk -F: '{$1="";sub("^ *","");$2="";sub(" *$","");print}' dmidecode -t processor | grep -c Version dmidecode -t memory | grep -i 'Part Number' | grep -v 'NO DIMM' | awk -F: '{$1="";sub("^ *","");$2="";sub(" *$","");print}' dmidecode -t memory | grep -i size | grep -cvi no lspci | grep Eth | awk -F ': ' '{$1="";sub("^ *","");$2="";sub(" *$","");print}'“并保存结果,执行ipmitool power cycle,进入系统后继续检查”cat /proc/cpuinfo | grep -i 'Model name' | awk -F: '{$1="";sub("^ *","");$2="";sub(" *$","");print}' dmidecode -t processor | grep -c Version dmidecode -t memory | grep -i 'Part Number' | grep -v 'NO DIMM' | awk -F: '{$1="";sub("^ *","");$2="";sub(" *$","");print}' dmidecode -t memory | grep -i size | grep -cvi no lspci | grep Eth | awk -F ': ' '{$1="";sub("^ *","");$2="";sub(" *$","");print}' 脚本循环20次。
时间: 2023-07-19 17:07:58 浏览: 193
linux系统使用python获取cpu信息脚本分享
这是一个检查 Linux 系统硬件信息的 Python 脚本,执行过程如下:
1. 使用命令 `cat /proc/cpuinfo | grep -i 'Model name' | awk -F: '{$1="";sub("^ *","");$2="";sub(" *$","");print}'` 获取 CPU 型号信息;
2. 使用命令 `dmidecode -t processor | grep -c Version` 获取 CPU 版本信息;
3. 使用命令 `dmidecode -t memory | grep -i 'Part Number' | grep -v 'NO DIMM' | awk -F: '{$1="";sub("^ *","");$2="";sub(" *$","");print}'` 获取内存型号信息;
4. 使用命令 `dmidecode -t memory | grep -i size | grep -cvi no` 获取内存大小信息;
5. 使用命令 `lspci | grep Eth | awk -F ': ' '{$1="";sub("^ *","");$2="";sub(" *$","");print}'` 获取网卡型号信息;
6. 将上述信息保存到文件中;
7. 执行 `ipmitool power cycle` 命令重启系统;
8. 进入系统后重复执行步骤 1-5;
9. 循环执行上述步骤 20 次。
下面是实现这个脚本的 Python 代码:
```python
import os
count = 20
for i in range(count):
# 获取 CPU 型号信息
cpu_model = os.popen("cat /proc/cpuinfo | grep -i 'Model name' | awk -F: '{$1=\"\";sub(\"^ *\",\"\",$2);$2=\"\";sub(\" *$\",\"\",$2);print}'").read().strip()
# 获取 CPU 版本信息
cpu_version = os.popen("dmidecode -t processor | grep -c Version").read().strip()
# 获取内存型号信息
memory_model = os.popen("dmidecode -t memory | grep -i 'Part Number' | grep -v 'NO DIMM' | awk -F: '{$1=\"\";sub(\"^ *\",\"\",$2);$2=\"\";sub(\" *$\",\"\",$2);print}'").read().strip()
# 获取内存大小信息
memory_size = os.popen("dmidecode -t memory | grep -i size | grep -cvi no").read().strip()
# 获取网卡型号信息
nic_model = os.popen("lspci | grep Eth | awk -F ': ' '{$1=\"\";sub(\"^ *\",\"\",$2);$2=\"\";sub(\" *$\",\"\",$2);print}'").read().strip()
# 将信息保存到文件中
with open("hardware_info.txt", "a") as f:
f.write(f"CPU 型号: {cpu_model}\n")
f.write(f"CPU 版本: {cpu_version}\n")
f.write(f"内存型号: {memory_model}\n")
f.write(f"内存大小: {memory_size}\n")
f.write(f"网卡型号: {nic_model}\n")
f.write("\n")
# 重启系统
os.system("ipmitool power cycle")
# 等待系统重启完成
time.sleep(60)
# 再次获取硬件信息
cpu_model = os.popen("cat /proc/cpuinfo | grep -i 'Model name' | awk -F: '{$1=\"\";sub(\"^ *\",\"\",$2);$2=\"\";sub(\" *$\",\"\",$2);print}'").read().strip()
cpu_version = os.popen("dmidecode -t processor | grep -c Version").read().strip()
memory_model = os.popen("dmidecode -t memory | grep -i 'Part Number' | grep -v 'NO DIMM' | awk -F: '{$1=\"\";sub(\"^ *\",\"\",$2);$2=\"\";sub(\" *$\",\"\",$2);print}'").read().strip()
memory_size = os.popen("dmidecode -t memory | grep -i size | grep -cvi no").read().strip()
nic_model = os.popen("lspci | grep Eth | awk -F ': ' '{$1=\"\";sub(\"^ *\",\"\",$2);$2=\"\";sub(\" *$\",\"\",$2);print}'").read().strip()
# 将信息保存到文件中
with open("hardware_info.txt", "a") as f:
f.write(f"重启后 CPU 型号: {cpu_model}\n")
f.write(f"重启后 CPU 版本: {cpu_version}\n")
f.write(f"重启后 内存型号: {memory_model}\n")
f.write(f"重启后 内存大小: {memory_size}\n")
f.write(f"重启后 网卡型号: {nic_model}\n")
f.write("\n")
```
注意,如果要执行 `ipmitool power cycle` 命令需要使用 root 权限。此外,为了防止重启过程中文件写入失败,最好将文件名改为绝对路径。
阅读全文