‘壹’ linux如何查看服务器序列号
1、单独查看服务器的序列号
[root@localhost ~]# dmidecode -t system | grep 'Serial Number'
Serial Number: 2102310YPY10J30*****
2、单独查看服务器型号
[root@localhost ~]# dmidecode | grep "Proct"
Proct Name: PowerEdge R730
Proct Name: 0WCJNT
3、统一查看服务器SN序列号和型号
[root@localhost ~]# dmidecode | grep "System Information" -A9 | egrep "Manufacturer|Proct|Serial"
Manufacturer: Huawei 厂商
Proct Name: RH2288 V3 型号
Serial Number: 2102310YPY10J3****** 序列号
4、查看内存条信息及使用情况(内存的插槽数,已经使用多少插槽.每条内存多大,下图为16个内存插糟,用了12个插槽,每根内存条16G)《Linux就该这么学》一起学习linux
[root@localhost ~]# dmidecode -t memory | grep Size
Size: 16384 MB
Size: 16384 MB
Size: 16384 MB
Size: 16384 MB
Size: 16384 MB
Size: No Mole Installed
Size: 16384 MB
Size: No Mole Installed
Size: 16384 MB
Size: 16384 MB
Size: 16384 MB
Size: 16384 MB
Size: 16384 MB
Size: No Mole Installed
Size: 16384 MB
Size: No Mole Installed
‘贰’ LINUX如何查询工作站多硬盘的硬盘序列号
#不需要安装额外软件,直接查询
为什么我的行呢?你再用下面的参数试试。
sudo hdparm -I /dev/sda | grep Serial
Serial Number: WD-ABC2E30ETS28
Transport: Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5
‘叁’ 如何读取Linux内核磁盘序列号
这些信息通过读取proc文件是可以获得的,faild to open失败可能两个原因,1就是路径出错,2就是没有打开权限。
‘肆’ LINUX 硬盘序列号
main不能是static吧,我的gcc版本是不允许的.
貌似别的头文件还有问题.是内核的代码么??
‘伍’ linux下怎么用c获取硬盘物理序列号
1、在Linux系统中通过C语言获取硬盘序列号,可以借助于ioctl()函数,该函数原型如下:
intioctl(intfd,unsignedlongrequest,...);
ioctl的第一个参数是文件标识符,用open()函数打开设备时获取。
ioctl第二个参数为用于获得指定文件描述符的标志号,获取硬盘序列号,一般指明为HDIO_GET_IDENTITY。
ioctl的第三个参数为一些辅助参数,要获取硬盘序列号,需要借助于structhd_driveid结构体来保存硬盘信息,该结构体在Linux/hdreg.h中,structhd_driveid的声明如下
structhd_driveid{
unsignedshortconfig;/lotsofobsoletebitflags*/
unsignedshortcyls;/*Obsolete,"physical"cyls*/
unsignedshortreserved2;/*reserved(word2)*/
unsignedshortheads;/*Obsolete,"physical"heads*/
unsignedshorttrack_bytes;/*unformattedbytespertrack*/
unsignedshortsector_bytes;/*unformattedbytespersector*/
unsignedshortsectors;/*Obsolete,"physical"sectorspertrack*/
unsignedshortvendor0;/*vendorunique*/
unsignedshortvendor1;/*vendorunique*/
unsignedshortvendor2;/*Retiredvendorunique*/
unsignedcharserial_no[20];/*0=not_specified*/
unsignedshortbuf_type;/*Retired*/
unsignedshortbuf_size;/*Retired,512byteincrements
*0=not_specified
*/
……
};
2、源代码如下
#include<stdio.h>
//ioctl()的声明头文件
#include<sys/ioctl.h>
//硬盘参数头文件,hd_driveid结构声明头文件
#include<linux/hdreg.h>
//文件控制头文件
#include<sys/fcntl.h>
intmain()
{
//用于保存系统返回的硬盘数据信息
structhd_driveidid;
//这里以第一块硬盘为例,用户可自行修改
//用open函数打开获取文件标识符,类似于windows下的句柄
intfd=open("/dev/sda",O_RDONLY|O_NONBLOCK);
//失败返回
if(fd<0){
perror("/dev/sda");
return1;}
//调用ioctl()
if(!ioctl(fd,HDIO_GET_IDENTITY,&id))
{
printf("SerialNumber=%s ",id.serial_no);
}
return0;
}
编译完成后,执行效果如下:
‘陆’ linux下怎样查看硬盘序列号
root@localhost:~# fdisk -l
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 1 3907029167 1953514583+ ee GPT
root@localhost:~# hdparm -i /dev/sda1
/dev/sda1:
Model=WDC WD2003FYYS-02W0B1, FwRev=01.01D02, SerialNo=WD-WMAY04598673
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50
BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=3907029168
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=yes: unknown setting WriteCache=enabled
Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7
* signifies the current active mode
‘柒’ linux系统下,C++编程获得硬盘及主板序列号执行的时候不要加sudo
请问你解决了吗