歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Shell寫的檢測Linux系統硬件信息的腳本

Shell寫的檢測Linux系統硬件信息的腳本

日期:2017/3/1 10:08:14   编辑:SHELL編程

這裡是很久之前用shell寫的一個linux系統硬件信息檢測腳本,可以對照看一下。檢測內容基本一樣:操作系統信息、內存、CPU、硬盤分區及掛載情況,網卡配置情況、安裝的軟件信息等。

  1. #!/bin/bash
  2. #This script is used to check the server
  3. #system info
  4. system_info() {
  5. echo "**********************************************"
  6. echo "system info:"
  7. echo
  8. echo " System-release : `cat /etc/RedHat-release`"
  9. echo " Kernel-release : `uname -a|awk '{print $1,$3}'`"
  10. echo " Server-Model : `dmidecode | grep "Product Name:"|sed -n '1p'|awk -F': ' '{print $2}'`"
  11. echo
  12. }
  13. #CPU info
  14. cpu_info() {
  15. echo "**********************************************"
  16. echo "CPU info:"
  17. echo
  18. echo " Frequency : `cat /proc/cpuinfo | grep "model name" | uniq |awk -F': ' '{print $2}'`"
  19. echo " CPU cores: `cat /proc/cpuinfo | grep "cpu cores" | uniq |awk -F': ' '{print $2}'`"
  20. echo " Logic Count : `cat /proc/cpuinfo | grep "processor" | sort -u| wc -l `"
  21. echo " Physical Count : `cat /proc/cpuinfo | grep "physical" | sort -u| wc -l`"
  22. echo " Cache size : `cat /proc/cpuinfo| grep "cache size"|uniq|awk '{print $4,$5}'`"
  23. echo
  24. }
  25. #memory info
  26. mem_info() {
  27. memory=`dmidecode |grep "Range Size"|head -1|awk '{print $3$4}'`
  28. mem_size=`echo "This server has ${memory} memory."`
  29. echo "**********************************************"
  30. echo "Memory info:"
  31. echo
  32. echo " Total : ${mem_size}"
  33. echo " Count : `dmidecode |grep -A16 "Memory Device$"|grep Size|awk '{if($2!~/No/) print $0}'|wc -l`"
  34. dmidecode |grep -A20 "Memory Device$"|grep Size|sed '{s/^ */ /g};{/No/d}'
  35. echo
  36. }
  37. #disk and partitions
  38. swap_pos=`cat /proc/swaps|sed -n '2p'|awk '{print $1}'`
  39. partition_info() {
  40. echo "**********************************************"
  41. echo "Hard disk info:"
  42. echo
  43. echo "`fdisk -l|grep Disk|awk -F, '{print $1}'`"
  44. echo "**********************************************"
  45. echo "Partition info:"
  46. echo
  47. df -h | grep -v Filesystem | sed "s:none:${swap_pos}:"
  48. echo
  49. }
  50. #network adapter info
  51. adapter_info() {
  52. duplex_eth0=`ethtool eth0 | grep Duplex | awk '{if($2~/Full/) print "Full"};{if($2~/Half/)print "Half"};{if($2~/Uknown!/) print "unknown"}'`
  53. duplex_eth1=`ethtool eth1 | grep Duplex | awk '{if($2~/Full/) print "Full"};{if($2~/Half/)print "Half"};{if($2~/Uknown!/) print "unknown"}'`
  54. Negotiation_eth0=`ethtool eth0 | grep "Advertised auto-negotiation"|awk -F': ' '{if($2~/No/) print "Non-negotiation."};{if($2~/Yes/) print "Negotiation"}'`
  55. Negotiation_eth1=`ethtool eth1 | grep "Advertised auto-negotiation"|awk -F': ' '{if($2~/No/) print "Non-negotiation"};{if($2~/Yes/) print "Negotiation"}'`
  56. IP_eth0=`cat /etc/sysconfig/network-scripts/ifcfg-eth0|grep IPADDR|awk -F= '{print $2}'`
  57. IP_eth1=`cat /etc/sysconfig/network-scripts/ifcfg-eth1|grep IPADDR|awk -F= '{print $2}'`
  58. speed_eth0=`ethtool eth0|grep Speed|awk '{print $2}'`
  59. speed_eth1=`ethtool eth1|grep Speed|awk '{print $2}'`
  60. echo "**********************************************"
  61. echo "Network adapter info:"
  62. echo
  63. echo " IP_eth0 : ${IP_eth0} IP_eth0 : ${IP_eth1}"
  64. echo " Speed_eth0 : ${speed_eth0} Speed_eth1 : ${speed_eth1}"
  65. echo " Duplex_eth0 : ${duplex_eth0} Duplex_eth1 : ${duplex_eth1}"
  66. echo " Negotiation_eth0 : ${Negotiation_eth0} Negotiation_eth1 : ${Negotiation_eth1}"
  67. echo
  68. }
  69. #software package
  70. software_info() {
  71. echo "**********************************************"
  72. echo "SELinux is `cat /etc/selinux/config |grep SELINUX=disabled|awk -F= '{print $2}'||echo "enabled"`"
  73. echo "`service iptables status|sed 's/Firewall/Iptables/g'`"
  74. echo
  75. echo "**********************************************"
  76. sed -n '/%packages/,/%post/p;' /root/anaconda-ks.cfg|sed '/%post/d;/^$/d'
  77. echo "**********************************************"
  78. }
  79. #del mac-addr
  80. #sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth0
  81. #sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth1
  82. system_info
  83. cpu_info
  84. mem_info
  85. partition_info
  86. adapter_info
  87. software_info
Copyright © Linux教程網 All Rights Reserved