Linux硬件检测
     分类:系统管理     有: 0 条评论

Linux硬件检测

     分类:系统管理     有: 0 条评论

查看服务器基本硬件配置

直接把代码保存为.sh文件,加权限即可运行。现成文件下载

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

if [ $(cat /etc/issue |grep -v Kernel |awk '{print $1}') != "CentOS" ]; then
    apt-get install smartmontools -y
fi

echo ""
echo "---------------------服务器信息------------------------"
echo "服务器品牌:"`dmidecode|grep "System Information" -A9 | grep Manufacturer |awk '{print $2}'`
echo "服务器型号:"`dmidecode|grep "System Information" -A9 | grep Product |awk '{print $3}'`
echo "序列号:"`dmidecode|grep "System Information" -A9 | grep Serial |awk '{print $3}'`
echo ""
echo ""
echo "---------------------主板信息--------------------------"
b=`dmidecode|grep "System Information" -A9|egrep Manufacturer: |awk '{print $2}'`
echo "主板品牌:" $b
c=`dmidecode |grep "System Information" -A9 |grep "Product Name:" |awk '{print $3}'`
echo "主板型号:" $c
echo ""
echo ""
echo "--------------------操作系统信息------------------------"
echo "系统:" `cat /etc/issue |grep -v Kernel`
echo "主机名:" `uname -n`
echo "内核版本:" `uname -r`
echo "" 
echo "----------------------CPU信息--------------------------"
echo "CPU个数:" `cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l`
echo "CPU型号:" `cat /proc/cpuinfo | grep 'model name' |uniq |awk -F : '{print $2}'`
echo "每个CPU核数:" `cat /proc/cpuinfo| grep "cpu cores"| uniq |awk '{print $4}'`
echo "CPU总个数:" `cat /proc/cpuinfo | grep "physical id" | uniq | wc -l`
echo "逻辑CPU个数(总核数):" `cat /proc/cpuinfo| grep "processor"| wc -l`
echo ""
echo ""
echo "---------------------内存信息--------------------------"
echo "内存插槽总数:" `dmidecode |grep -A16 "Memory Device$" |grep Manufacturer: | wc -l`
echo "未使用插槽数:" `dmidecode |grep -A16 "Memory Device$" |grep 'Manufacturer: NO DIMM' | wc -l`
echo "厂商如下:"
    dmidecode -t memory |grep Manufacturer
echo "内存型号:"
    dmidecode -t memory |grep 'Part Number'
echo "每条内存大小:"
    dmidecode|grep -A5 "Memory Device"|grep Size|grep -v Range
echo "每条内存频率:"
    dmidecode|grep -A16 "Memory Device"|grep Speed
echo "总内存(GB):" `free -g |grep Mem |awk '{print $2}'`
echo ""
echo ""
echo "---------------------硬盘信息--------------------------"
echo "硬盘厂商、型号、序列号:" `smartctl -a /dev/sda |egrep "Device Model:|Serial Number:"`
echo "硬盘数量、容量:" `fdisk -l |grep "Disk /dev/sd"`
echo ""
echo ""
echo "---------------------网卡信息--------------------------"
echo "网卡设备:"
lspci | grep Ethernet
echo ""
echo ""

硬盘检测

查看smart信息

yum install -y smartmontools
smartctl -H /dev/sda         #查看健康状况
smartctl -A /dev/sda         #查看完整信息

badblocks坏道检测

badblock命令用于查找磁盘中损坏的区块,是一个很好的检查坏道位置的工具。

语法: badblock (选项) (参数)

选项
-b<区块大小>:指定磁盘的区块大小,单位为字节;
-o<输出文件>:将检查的结果写入指定的输出文件;
-s:在检查时显示进度;
-v:执行时显示详细的信息;
-w:在检查时,执行写入测试。
-c:指定检查次数。

参数
磁盘装置:指定要检查的磁盘装置;
磁盘区块数:指定磁盘装置的区块总数;
启始区块:指定要从哪个区块开始检查。

使用fdisk命令识别硬盘信息

fdisk -l 

扫描硬盘的损坏扇区或区块

badblocks -s -v /dev/sdb > /tmp/bad-blocks.txt

扫描完成后,如果损坏区块被发现了,然后通过e2fsck命令使用“bad-blocks.txt”,强迫操作系统不使用这些损坏的区块存储数据。

e2fsck -l /tmp/bad-blocks.txt  /dev/sdb

注意:在运行e2fsck命令前,请保证设备没有被挂载。

对可疑的区块多做几次操作

以4096字节为一个“block”,每一个“block”检查1次, 将结果输出到“/tmp/bad-blocks2.txt”文件中,由第51000 block开始,到63000 block结束,同时屏幕输出详细信息。

badblocks -v -b 4096 -c 1 /dev/sdb -o /tmp/bad-blocks2.txt 63000 51000

fsck使用badblocks的信息

badblocks只会在日志文件中标记出坏道的信息,但若希望在检测磁盘时也能跳过这些坏块不检测,可以使用fsck的-l参数

fsck.ext3 -l /tmp/bad-blocks.txt /dev/sdb

在创建文件系统前检测坏道

badblocks可以随e2fsck和mke2fs的-c一起运行(对ext3文件系统也一样),在创建文件系统前就先检测坏道信息,使用-c在创建文件系统前检查坏道的硬盘。 mkfs.ext3 -c选项用read-only方式检查硬盘,会在格式化硬盘时检查硬盘,并标出错误的硬盘“block”。

mkfs.ext4 -c /dev/sdb1

检测修复逻辑坏道

硬盘坏道(物理坏道)无法修复,只能隔离
http://www.cnblogs.com/perry-monk/p/4303557.html


e2fsck检测错误并修复

用此命令一定要卸载分区,挂载着是无法运行的,检测/分区要在单用户模式下。检测完成后别忘了挂载回去。

-a: 检查 partition,如发现问题会自动修复。
-b: 设定 superblock 位置。
-B size: 指定 size 作为区块大小。
-c: 检查 partition 是否有坏轨。
-C file: 将检查结果储存到 file。
-d: 输出 e2fsck debug 结果。
-f: e2fsck 预设只会对错误的档案系统检查,加上 -f 是强制检查。
-F: 在检查前将硬盘的 buffer cache 清空,避免发生错误。
-l list: 记录了坏轨区块加入 list 中。
-d : 打印 e2fsck 的 debug 结果。
-f : 强制检查。
-n: 以 (read-only) 开启档案系统
-p: 关闭互动模式,如有问题自动修复,等同 -a。
-v: 显示详细报告。
-y: 启用使用者互动模式。

## 检查 /dev/mapper/centos-root 是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是] 
e2fsck -a -y /dev/mapper/centos-root

参考:http://blog.csdn.net/hun_sunny/article/details/8722844


hdparm

yum install hdparm
hdparm -I /dev/sda

(●゚ω゚●)