Câu trả lời:
lspci
đối với thẻ pci, lsusb
cho usb, lshw
hoạt động trên các distro dựa trên debian, đây là danh sách các cách để có được thông số kỹ thuật phần cứng khác ,
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.
lspci
là một tiện ích tuyệt vời để liệt kê phần cứng hệ thống. (Mọi thứ trên bus PCI, dù sao đi nữa.)
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.
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 sẽ 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ể.
inxi sẽ hiển thị gần như 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à một '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
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.
# tree -d /sys/devices
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
Một bài viết rất cũ, nhưng tôi nhận thấy rằng sự xuất sắc lshw
bị thiếu trong các câu trả lời.