현재 진행 중인 프로젝트에서는 총 용량, 폼 팩터, SSD 또는 HDD, RPM, 인터페이스 유형 등 시스템에 설치된 모든 정보를 가져와야 합니다.
많이 검색했는데 이 작업을 수행하는 명령을 찾을 수 있습니다. 비교해 보면 Windows에는 내 요구 사항을 충족하는 일부 응용 프로그램이 있다는 것을 알았습니다. 그들은 어떻게 그렇게 했나요?
관심을 끌기 위해 Linux에도 비슷한 것이 있습니까?
이 두 운영체제는 주로 서버에서 사용되기 때문에 컴퓨터에서는 하드웨어 정보보다 하드웨어 정보가 더 중요한 역할을 해야 한다고 생각합니다.
답변1
diskinfo
Solaris 11을 사용하는 경우 새 명령이 사용자의 요구 사항을 충족하는지 확인하는 것이 좋습니다 .
나는 Solaris 8에서 대부분의 정보를 얻기 위해 커널을 쿼리할 수 있다는 것을 알고 있습니다. sysinternals 책에 데이터를 얻기 위한 C 코드(? - 10년 전의 메모리 손실) 책도 있다고 생각해 보세요.
하드웨어에 따라 ILOM 또는 XSCF에서 이 데이터를 얻을 수 있습니다. Ops Center 사용을 고려할 수도 있습니다.
답변2
문제는 디스크가 이 정보를 공유할 의향이 있는지 여부입니다. 조사한다면SCSI 프로토콜, 이는 많은 정보를 제공하지 않습니다. 이와 관련된 세 가지 주요 명령은 다음과 같습니다.
- 읽기 능력아마도 자명할 것입니다. 블록 수를 제공합니다.
- 묻다공급업체 이름, 일련번호 등을 제공합니다.
- 로그 감지아마도 가장 흥미로운 점은 현재 온도, 사용 통계 등과 같은 다양한 디스크 관련 정보 페이지를 제공한다는 것입니다. 그러나 많은 페이지가 디스크에서 지원되지 않습니다.
이 세 가지 명령은 하위 수준 명령을 사용하여 실행할 수 있습니다.sg3_utils
이에 따라 sg_readcap
, sg_inq
및 명령을 사용하십시오 sg_logs
. 이 패키지는 Linux에서 제공되며 Solaris 11.2+와 함께 제공됩니다.
그러나 실제 디스크를 제공할 수 있는 항목을 살펴보면 sg_logs
그다지 많지 않다는 것을 알 수 있습니다.
root@calypso-sparc31:~# sg_logs -p 0x0 /dev/rdsk/c0t5000CCA01248AAE0d0s2
HITACHI H106060SDSUN600G A2B0
Supported log pages:
0x00 Supported log pages
0x02 Error counters (write)
0x03 Error counters (read)
0x05 Error counters (verify)
0x06 Non-medium errors
0x0d Temperature
0x0e Start-stop cycle counter
0x0f Application client
0x10 Self-test results
0x15 Background scan results (sbc-3)
0x18 Protocol specific port
0x1a Power condition transition
0x2f Informational exceptions (SMART)
0x30 Performance counters (Hitachi)
0x37 Cache (Seagate), Miscellaneous (Hitachi)
또한 디스크가 RAID 컨트롤러(예: LSI) 또는 스토리지 서버 뒤에 있는 경우 아무 것도 얻을 수 없습니다.
이는 SCSI에서만 작동합니다. ATA 프로토콜 제품군은 완전히 다른 짐승입니다.