歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

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

這裡是很久之前用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.  
  14.  
  15.  
  16.  
  17. #CPU info 
  18. cpu_info() { 
  19. echo "**********************************************" 
  20. echo "CPU info:" 
  21. echo 
  22. echo "    Frequency : `cat /proc/cpuinfo | grep "model name" | uniq |awk -F': ' '{print $2}'`" 
  23. echo "    CPU cores:  `cat /proc/cpuinfo | grep "cpu cores" | uniq |awk -F': ' '{print $2}'`" 
  24. echo "    Logic Count : `cat /proc/cpuinfo | grep "processor" | sort -u| wc -l `" 
  25. echo "    Physical Count : `cat /proc/cpuinfo | grep "physical" | sort -u| wc -l`" 
  26. echo "    Cache size : `cat /proc/cpuinfo| grep "cache size"|uniq|awk '{print $4,$5}'`" 
  27. echo 
  28. } 
  29.  
  30.  
  31.  
  32.  
  33.  
  34. #memory info 
  35. mem_info() { 
  36. memory=`dmidecode |grep "Range Size"|head -1|awk '{print $3$4}'` 
  37. mem_size=`echo "This server has ${memory} memory."` 
  38.  
  39. echo "**********************************************" 
  40. echo "Memory info:" 
  41. echo 
  42. echo "   Total : ${mem_size}" 
  43. echo "   Count : `dmidecode |grep -A16 "Memory Device$"|grep Size|awk '{if($2!~/No/) print $0}'|wc -l`" 
  44. dmidecode |grep -A20 "Memory Device$"|grep Size|sed '{s/^       */   /g};{/No/d}' 
  45. echo 
  46. } 
  47.  
  48.  
  49.  
  50.  
  51.  
  52. #disk and partitions 
  53. swap_pos=`cat /proc/swaps|sed -n '2p'|awk '{print $1}'` 
  54. partition_info() { 
  55. echo "**********************************************" 
  56. echo "Hard disk info:" 
  57. echo 
  58. echo "`fdisk -l|grep Disk|awk -F, '{print $1}'`" 
  59. echo "**********************************************" 
  60. echo "Partition info:" 
  61. echo 
  62. df -h | grep -v Filesystem | sed "s:none:${swap_pos}:" 
  63. echo 
  64. } 
  65.  
  66.  
  67. #network adapter info 
  68. adapter_info() { 
  69.  
  70. duplex_eth0=`ethtool eth0 | grep Duplex | awk '{if($2~/Full/) print "Full"};{if($2~/Half/)print "Half"};{if($2~/Uknown!/) print "unknown"}'` 
  71.  
  72. duplex_eth1=`ethtool eth1 | grep Duplex | awk '{if($2~/Full/) print "Full"};{if($2~/Half/)print "Half"};{if($2~/Uknown!/) print "unknown"}'` 
  73.  
  74. Negotiation_eth0=`ethtool eth0 | grep "Advertised auto-negotiation"|awk -F': ' '{if($2~/No/) print "Non-negotiation."};{if($2~/Yes/) print "Negotiation"}'` 
  75.  
  76. Negotiation_eth1=`ethtool eth1 | grep "Advertised auto-negotiation"|awk -F': ' '{if($2~/No/) print "Non-negotiation"};{if($2~/Yes/) print "Negotiation"}'` 
  77.  
  78. IP_eth0=`cat /etc/sysconfig/network-scripts/ifcfg-eth0|grep IPADDR|awk -F= '{print $2}'` 
  79.  
  80. IP_eth1=`cat /etc/sysconfig/network-scripts/ifcfg-eth1|grep IPADDR|awk -F= '{print $2}'` 
  81.  
  82. speed_eth0=`ethtool eth0|grep Speed|awk '{print $2}'` 
  83. speed_eth1=`ethtool eth1|grep Speed|awk '{print $2}'` 
  84.  
  85. echo "**********************************************" 
  86. echo "Network adapter info:" 
  87. echo 
  88. echo "  IP_eth0 : ${IP_eth0}        IP_eth0 : ${IP_eth1}" 
  89. echo "  Speed_eth0 : ${speed_eth0}          Speed_eth1 : ${speed_eth1}" 
  90. echo "  Duplex_eth0 : ${duplex_eth0}            Duplex_eth1 : ${duplex_eth1}" 
  91. echo "  Negotiation_eth0 : ${Negotiation_eth0}  Negotiation_eth1 : ${Negotiation_eth1}" 
  92. echo 
  93. } 
  94.  
  95.  
  96.  
  97.  
  98. #software package 
  99. software_info() { 
  100. echo "**********************************************" 
  101. echo "SELinux is `cat /etc/selinux/config |grep SELINUX=disabled|awk -F= '{print $2}'||echo "enabled"`" 
  102. echo "`service iptables status|sed 's/Firewall/Iptables/g'`" 
  103. echo 
  104. echo "**********************************************" 
  105. sed -n '/%packages/,/%post/p;' /root/anaconda-ks.cfg|sed '/%post/d;/^$/d' 
  106. echo "**********************************************" 
  107. } 
  108.  
  109.  
  110.  
  111. #del mac-addr 
  112. #sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth0 
  113. #sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth1 
  114.  
  115.  
  116. system_info 
  117. cpu_info 
  118. mem_info 
  119. partition_info 
  120. adapter_info 
  121. software_info 
Copyright © Linux教程網 All Rights Reserved