Linux 시스템의 하드웨어에 대한 세부 사항을 찾는 방법은 무엇입니까?


40

-ie- 명령 줄에서 하드웨어 구성 요소의 전체 목록을 얻는 방법 (창 시스템이없는 시스템에서)

감사합니다.

답변:


41

lspcipci 카드, lsusbUSB의 경우 lshw데비안 기반 배포판 에서 작동합니다. 여기에 다른 하드웨어 사양 을 얻는 방법 목록이 있습니다 .


링크 주셔서 감사합니다. 나는 그것을 구글 할 수 있음을 인정하지만, 구글은 혼란스러운 사람이다.
Evgeny

37

가능하면 dmidecode편리합니다. 특히 Dell, HP, IBM 하드웨어에서 관련 하드웨어 정보를 다양한 레지스터에 프로그래밍 할 필요가 없습니다.


7
dmidecode가 좋습니다. 어느 날 메모리 세부 사항을 살펴보기 위해 Dell 서비스 태그를 찾을 수 있다는 것을 깨달았습니다. dmidecode | grep -i 직렬 | egrep -o '[0-9A-Z] {7} $'| 머리 -n1
Kyle Brandt

1
합의하면 dmidecode를 실행하고 원하는 정보를 grep 할 수 있습니다.
barfoon

1
애플 하드웨어에서도 잘 작동합니다.
Matt3o12

30

lspci시스템 하드웨어를 나열하는 데 유용한 유틸리티입니다. (어쨌든 PCI 버스의 모든 것)

cat /proc/cpuinfo -CPU 정보를 표시합니다

cat /proc/meminfo -메모리 정보를 표시합니다

dmesg(또는 cat /var/log/dmesg)에 모든 정보가 아닌 일부 정보가 포함되어 있습니다.

RedHat / CentOS 시스템을 사용 sosreport하는 경우, 모든 하드웨어 정보가 나열되어 있는지는 모르겠지만 좋은 정보를 수집하는 데 사용할 수 있습니다 .

원하는 정보를 찾기 시작하기에 좋은 곳입니다.


3

/ proc 파일 시스템은 당신이 원하는 정보를 제공 할 것입니다. 그러나 어떻게 당신이 그것을 얻을 수 있는지 모르겠습니다.

'cat / proc / cpuinfo'는 CPU에 대해 알려줍니다. 'cat / proc / devices'는 블록 장치에 대한 제한된 정보를 알려줍니다. 'ifconfig -a'는 네트워크 연결에 대해 알려줍니다

다른 사람들이 더 많은 장치에 대해 알려줄 수 있습니다. 특정 장치의 문제를 해결하고 있습니까? 그렇다면 특정 질문을하면 더 나은 도움을받을 수 있습니다.


고마워요, 호스트에서 호스트로 이동하려고하는데 하드웨어의 차이점이 무엇인지 확인하고 싶습니다. 재 이미징으로 이동할 수 있는지 확인하십시오.
Evgeny

1
부팅의 초기 부분이 작동하는 한 대부분의 배포판은 하드웨어 변경을 감지하고 적응합니다. 부팅 부분에 문제가있는 경우 새 하드웨어로 이동할 때와 동일한 배포본을 설치하고 이동중인 동일한 커널로 업데이트 한 다음 mkintrd 파일을 이미지 파일 시스템에 복사하면 부팅 문제가 해결됩니다. . 실제로 잘못되면 여전히 이전 시스템에 모든 데이터가 있습니다.
Michael Shaw

두 번째 머신에 이미 Linux가 있고 커널이 일반적인 빌드라고 가정하고 최신으로 가정하면 필요한 모든 모듈 (모듈은 Windows 드라이버와 유사 함)을로드합니다. 리눅스 설치는 실제로 그런 방식으로 하드웨어에 한정되는 것은 아닙니다.
Kyle Brandt

/boot/initrd-2.6.*.img 파일은 그리 일반적이지 않습니다. 커널이 grub을 통해 제어권을 전달할 때 사용합니다. 루트 파일 시스템을로드하려면 모든 설정과 모듈이 있어야합니다. 이 파일은 mkinitrd를 실행하는 일반적인 방식으로 만들어 지지만, 먼저 시스템을 부팅해야합니다.
Michael Shaw

2

inxi는 거의 모든 것을 보여주고 짧은 형식에 대한 인수없이 실행되지만 옵션은 많지만 inxi -h를 실행하여 볼 수 있습니다.

inxihttps://github.com/smxi/inxi 프로젝트 홈페이지에 설명 된 '전체 기능 정보 스크립트'입니다.

Ubuntu에 설치하는 방법에 대한 정보는 다음과 같습니다. https://askubuntu.com/questions/284635/inxi-installation-on-ubuntu


Inxi는 비교적 새로운 도구이며 대부분의 배포판에서는 찾을 수 없습니다. 더 많은 정보와 링크를 추가해야합니다.
itsbruce

1

요약하면, 여기 시스템에 대한 정보를 얻는 것이 좋습니다.

  1. dmesg-커널 링 버퍼 인쇄 또는 제어
  2. lspci-모든 PCI 장치 나열
  3. lsusb-USB 장치 목록
  4. / proc-프로세스 정보 의사 파일 시스템


1

나는 " 팩터 "를 사용하는 것을 정말 좋아 합니다. 매우 유용한 정보의 좋은 목록을 제공합니다.



0

가장 쉬운 방법은 명령 줄에 " dmesg | more " 를 입력하는 것입니다 . 마지막 시스템 시작시 발생하는 모든 부팅 출력을 볼 수 있습니다.


0

하드 디스크의 경우 출력을 하나의 목록으로 마사지하는 사용자 지정 스크립트를 사용합니다.

cat /proc/partitions
cat /proc/mounts

parted -m /dev/sdX unit MB print # need to be root for parted
# or
parted -m -l unit MB print

blkid /dev/sdXN

0

아래 코드 u는 vi를 사용하여 복사 할 수 있습니다

#!/bin/bash

a=1; c=0
a=1; c=0
# Gather system information, can e.g. be sent to | mail in a cronjob
f_() { while read l; do echo $l; done < $f ; }
#
f_() { while read l; do echo $l; done < $f ; }
# TODO
# ----
# * Netstat output
# * Memory/swap information
# * ifconfig information
# * Make output dependent on argv
# * md5sum checks                               (done)
# * Keep previeous values and compare
# * How to
# * chmod a+x sysinfo.sh
# * ./sysinfo.sh
####################### DO NOT EDIT UNDER THIS LINE ###########################

siheader() {
        echo "================================================================"
        echo -e "* System statistics for: \t`hostname`.`dnsdomainname`"
        echo -e "* Generated on: \t\t`date`"
        echo -e "* Running as: \t\t\t`whoami`"
        echo
}

fuptime() {
        upSeconds=$(cat /proc/uptime | tr "." " " | awk '{print $1}')
        secs=$((${upSeconds}%60))
        mins=$((${upSeconds}/60%60))
        hours=$((${upSeconds}/3600/24))
        days=$((${upSeconds}/86400))
        if [ "${days}" -ne "0" ]
        then
                echo -n "${days} days, "
        fi
        echo "`printf '%02d' ${hours}`:`printf '%02d' ${mins}`:`printf '%02d' ${secs}`"
}

siuptime() {
        echo "=================== Uptime ====================================="
        echo -e "* Uptime: \t\t\t`fuptime`"
        if [ -x /usr/bin/uprecords ];
        then
                echo -e "* High score: \t\t\t`uprecords | tail -n1 | cut -d'|' -f1 | cut -d'n' -f3 | sed 's/^[[:blank:]]*//'`"
        fi
        echo -e "* Load average: \t\t`cat /proc/loadavg | head -c14`"
        echo
}

fw () {
        OFS=${IFS}
        IFS=$'\n'
        CNT=$(echo `w | wc -l`-1 | bc)

        w | tail -n ${CNT} | while read -r a;
        do
                echo -e "\t${a}"
        done

        IFS=${OFS}
}

siusers() {
        echo "=================== Users ======================================"
        echo -e "* Active users: \t\t`who | wc -l`"
        echo "* User information"
        fw
        echo
}

fpstree() {
        OFS=${IFS}
        IFS=$'\n'
        pstree | while read -r a;
        do
                echo -e "\t${a}"
        done
        IFS=${OFS}
}

fcomms() {
        ps -eo comm | sort | uniq | grep -v ^COMMAND | column
        echo

        IFS=${OFS}
}

fprocs() {
        echo `TERM=Linux top -n1 -b | grep "Tasks" | awk '{print $4,$6,$8,$10}'`
        echo -e "==================================Tasks process and memory utilization=============================\n"
    echo "`top -n1 -b`"
}


sitasks() {
        echo "=================== Tasks ======================================"
        echo -e "* Number of running tasks: \t$(echo `ps ax | wc -l` - 1 | bc)"
        #This screws up the email
        #echo "* PS Tree:"
        #fpstree
        echo "* Running programs:"
        fcomms
        echo -e "* CPU load: \t\t\t`TERM=linux top -n2 -b | grep 'Cpu' | tail -n1 | awk '{print $2+$4+$6}'`%"
        PROCS=`fprocs`
        echo "* Process state:"
        echo -e "\tRunning: \t\t`echo ${PROCS} | awk '{print $1}'`"
        echo -e "\tSleeping: \t\t`echo ${PROCS} | awk '{print $2}'`"
        echo -e "\tZombie: \t\t`echo ${PROCS} | awk '{print $3}'`"
        echo -e "\tStopped: \t\t`echo ${PROCS} | awk '{print $4}'`"
        echo
}

froute() {
        OFS=${IFS}
        IFS=$'\n'

        CNT=$(echo `/sbin/route | wc -l` - 1 | bc)
        /sbin/route | tail -n ${CNT} | while read -r a;
        do
                echo -e "\t${a}"
        done

        IFS=${OFS}
}

sinetwork() {
        echo "=================== Networking ================================"
        echo "* Routing table:"
        froute
        echo
}

simemory() {
        echo "=================== Memory ===================================="
        RAMTOTAL=`echo $(($(cat /proc/meminfo | grep MemTotal | awk '{print $2}')/1024))`
        echo "* Ram:\t\t\t free of ${RAMTOTAL}Mb"
}

sidiskstats() {
        echo "=================== Hard Disc ================================="
        echo "* Disk Information:"
        OFS=${IFS}
        IFS=$'\n'
        df -h | grep -v ^none | while read -r a;
        do
                echo -e "\t${a}"
        done
        IFS=${OFS}
        echo
        echo "* Mounts:"
        OFS=${IFS}
        IFS=$'\n'
        mount | while read -r a;
        do
                echo -e "\t${a}"
        done
        IFS=${OFS}
        echo
}

simd5() {
        if [ ! -e md5sums.lst ];
        then
                return
        fi

        echo "=================== MD5Sum Check =============================="

        OFS=${IFS}
        IFS=$'\n'

        echo "* Checking MD5 Sums"

        cat md5sums.lst | grep "^/" | while read -r a;
        do
                F=`echo ${a} | cut -d':' -f1`
                S=`echo ${a} | cut -d':' -f2`
                S2=`md5sum ${F} | cut -d' ' -f1`
                echo -n -e "\t${F}: \t\t\t\t"
                if [ "${S}" = "${S2}" ];
                then
                        echo "[OK]"
                else
                        echo "[INVALID]"
                fi                        
        done

        IFS=${OFS}
        echo
}


##For finding CPU model, cores and 
cpuinfo() {
    echo "=================== CPU Details for Xen =============================="
    echo -e "CPU Details: \n`cat /proc/cpuinfo | sed -n '1,/^$/p'`"
    echo -e "No of Cores: \n`cat /proc/cpuinfo | grep processor | wc -l`"
    if [ "egrep '(vmx|svm)' /proc/cpuinfo >/dev/null 2>/dev/null" ];
    then
        echo -e "\n===============================================================\nServer supports Full-virtualization"
    else
        echo -e "\n===============================================================\nEither server does not support Full-virtualization or it is turned off in BIOS"
    fi

    if [ "egrep 'pae' /proc/cpuinfo >/dev/null 2>/dev/null" ];
    then
        echo -e "\n===============================================================\nServer supports Para-virtualization"
    else
        echo -e "\n===============================================================\nServer does not support Para-virtualization"
    fi
}

##For disk info
diskinfo() {
        echo "=================== Disk usage =============================="
        echo -e "Disk Usage details: \n`df -h`"
}   
##Distro info
distroinfo() {
        echo "=================== Distro Info =============================="
        echo -e "Distro details: \n`lsb_release -a`"
        echo -e "Kernel details: \n`uname -a`"
}   

##Distro info
deviceinfo() {
        echo "=================== Device Info =============================="
        echo -e "Device details: \n`lspci -v`"
        echo -e "Kernel details: \n`uname -a`"
}   
summary() {
        siheader
        siuptime
        siusers
        sitasks
        sinetwork

        simemory
        sidiskstats
    fprocs
        simd5
    deviceinfo
    cpuinfo
    distroinfo
        echo "==============================================================="
        echo "* Brought to you by Taashee- http://www.taashee.com"
}

summary

손상되지 않도록 코드 블록에 모두 작성해야합니다.
Bill Weiss

고마워 빌 미안 그런 질문을 어떻게 물어 pls 내가 pls 다음에 할게 pls 내 영어를 무시 pls
Rajat

-1

아주 오래된 게시물이지만 lshw답변에서 우수성 이 누락 되었음을 알았습니다 .


최고 투표 답변에 언급 된 것 외에 다른 의미입니까?
Mark Booth
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.