it-swarm-vi.tech

Làm thế nào để tìm hiểu chi tiết về phần cứng trên máy Linux?

-i.e - cách nhận danh sách đầy đủ các thành phần phần cứng trong dòng lệnh (trên máy không có hệ thống cửa sổ)

Cảm ơn bạn.

41
Evgeny

lspci cho thẻ pci, lsusb cho usb, lshw hoạt động trên các bản phân phối dựa trên debian, đây là danh sách các cách để lấy thông số phần cứng khác ,

41
Keith

Nếu có sẵn, dmidecode có ích. Riêng trên phần cứng Dell, HP, IBM, nơi họ bận tâm lập trình thông tin phần cứng có liên quan vào các thanh ghi khác nhau.

37
Chad Huneycutt

lspci là một tiện ích tuyệt vời để liệt kê phần cứng hệ thống. (Dù sao đi nữa trên bus PCI.)

cat /proc/cpuinfo - Hiển thị thông tin CPU

cat /proc/meminfo - Hiển thị thông tin bộ nhớ

dmesg (hoặc cat /var/log/dmesg) chứa một số thông tin, không nhất thiết là tất cả mọi thứ.

Nếu bạn có hệ thống RedHat/CentOS, bạn có thể sử dụng sosreport để thu thập một chút thông tin, mặc dù tôi không biết liệu nó có tất cả thông tin phần cứng được liệt kê trong đó không.

Đó là một số nơi tốt để bắt đầu tìm thông tin bạn đang tìm kiếm.

30
baumgart

Hệ thống tập tin/Proc sẽ cung cấp cho bạn thông tin mà bạn muốn ... NHƯNG tôi không biết làm thế nào bạn có được nó là một nơi dễ dàng.

'Cat/Proc/cpuinfo' sẽ cho bạn biết về CPU 'cat/Proc/thiết bị' của CPU sẽ cho bạn biết một số thông tin hạn chế về các thiết bị khối. 'ifconfig -a' sẽ cho bạn biết về kết nối mạng

Những người khác sẽ có thể cho bạn biết về nhiều thiết bị hơn. Bạn đang xử lý sự cố một thiết bị cụ thể? Nếu vậy, bạn sẽ nhận được trợ giúp tốt hơn để hỏi một câu hỏi cụ thể.

3
Michael Shaw

inxi sẽ hiển thị mọi thứ, chạy không có đối số cho dạng ngắn, tuy nhiên các tùy chọn rất nhiều, chạy inxi -h để xem chúng

inxi là 'tập lệnh thông tin đầy đủ tính năng' như được mô tả bởi trang chủ của dự án: https://github.com/smxi/inxi

Dưới đây là thông tin về cách bạn có thể cài đặt nó trên Ubuntu: https://askubfox.com/questions/284635/inxi-installation-on-ubfox

2
hackinjack

để tóm tắt điều đó, tôi muốn nói ở đây là khởi đầu tốt để có được thông tin về hệ thống của bạn:

  1. dmesg - in hoặc điều khiển bộ đệm vòng kernel
  2. lspci - liệt kê tất cả các thiết bị PCI
  3. lsusb - liệt kê các thiết bị USB
  4. / Proc - xử lý thông tin hệ thống tập tin giả
1
alexus

Tôi khuyên bạn nên kiểm tra facter mà đưa ra nhiều thông tin ở dạng dễ sử dụng trong các tập lệnh.

http://www.puppetlabs.com/puppet/related-projects/facter/

1
Niels Basjes

Tôi thực sự thích sử dụng " Facter ". Cung cấp một danh sách tốt đẹp của thông tin rất hữu ích.

1
Sc0rian

bên dưới mã bạn có thể sao chép bằng 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
1
Rajat

Đối với đĩa cứng, tôi sử dụng tập lệnh tùy chỉnh mát xa vào một danh sách các đầu ra của:

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
mivk
# tree -d /sys/devices
0
Wojciech Domalewski

Cách dễ nhất là nhập "dmesg | more" trên dòng lệnh, cho phép bạn xem tất cả đầu ra khởi động xảy ra trong lần khởi động hệ thống cuối cùng.

0
djangofan