免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2411 | 回复: 3
打印 上一主题 下一主题

写了一段bash, 查看服务器基本信息 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-22 12:25 |只看该作者 |倒序浏览
本帖最后由 bigxu 于 2011-07-22 12:36 编辑
  1. #!/bin/bash

  2. # Linux or FreeBSD
  3. platform="$(uname -s)"
  4. if [ "$platform" = "Linux" ];  then
  5.     alias echo=echo -e
  6. else
  7.     alias echo="echo -e"
  8. fi

  9. # hostname
  10. hostname="$(uname -n)"

  11. # ... platform detail
  12. # release
  13. # kernel
  14. echo "# platform info ";
  15. if [ "$platform" = "Linux" ] ; then
  16.     release="$(grep DISTRIB_DESCRIPTION /etc/lsb-release|awk -F'=' '{print $2}' |sed 's/"//g') ($(grep DISTRIB_CODENAME /etc/lsb-release|awk -F'=' '{print $2}'))"
  17.     kernel_version="$(uname -r)"
  18.     kernel_name="$(uname -v)"
  19.     uptime="$(uptime)"
  20. elif [ "$platform" = "FreeBSD" ]; then
  21.     release="$(uname -r)"
  22.     kernel_version="$(sysctl -n kern.osrevision)"  
  23.     kernel_name="$(uname -a |awk -F'compile/' '{print $2}' |awk '{print $1}')"
  24.     uptime="$(uptime)"
  25. fi
  26. echo "hostname:\t$hostname"
  27. echo "platform:\t$platform"
  28. echo "release:\t$release"
  29. echo "kernel_version:\t$kernel_version\t"
  30. echo "kernel_name:\t$kernel_name\t"
  31. echo "uptime:\t$uptime\t"
  32. # cpu, os arch
  33. CPU_ARCH='32-bit'
  34. OS_ARCH='32-bit'
  35. if [ "${platform}" = "Linux" ]; then
  36.     if grep -q ' lm ' /proc/cpuinfo; then
  37.         CPU_ARCH='64-bit'
  38.     fi
  39. elif [ "${platform}" = "FreeBSD" ]; then
  40.     if sysctl hw.machine_arch | grep -v 'i[36]86' >/dev/null; then
  41.         CPU_ARCH='64-bit'
  42.     fi
  43. fi
  44. if file /bin/bash | grep '64-bit' >/dev/null; then
  45.     OS_ARCH='64-bit'
  46. fi
  47. echo "Architecture:\tCPU = $CPU_ARCH, OS = $OS_ARCH"


  48. # ... network
  49. echo "\n# network ip and route table"
  50. # ip
  51. ifconfig -a |grep inet |grep -v inet6 |grep -v "inet.*127.0.0.1" | sed "s/^\s\+//g"
  52. # route
  53. if [ "$platform" = "Linux" ]; then
  54.     netstat -n -r
  55. elif [ "$platform" = "FreeBSD" ]; then
  56.     netstat -f inet -r
  57. fi


  58. # ....cpu
  59. echo "\n# cpu info"
  60. if [ "$platform" = "Linux" ]; then
  61.     virtual=$(grep -c ^processor /proc/cpuinfo);
  62.     physical=$(grep 'physical id' /proc/cpuinfo | sort -u | wc -l);
  63.     cores=$(grep 'cpu cores' /proc/cpuinfo| head -n 1 | cut -d: -f2);
  64.     echo "virtual:\t$virtual"
  65.     echo "physical:\t$physical"
  66.     echo "cores:\t$cores"
  67.     cat /proc/cpuinfo  |grep -E "processor|model"
  68. elif [ "$platform" = "FreeBSD" ]; then
  69.    virtual="$(sysctl -a | awk '/hw.ncpu/{print $2}')"
  70.    speed="$(sysctl -a | awk '/hw.clockrate/{print $2}')"
  71.    models="$(sysctl -a | awk -F: '/hw.model/{print substr($2, 2)}')"
  72.    echo "virtual:\t$virtual"
  73.    echo "speed:\t$speed"
  74.    echo "models:\t$models"
  75. fi

  76. # ... memory
  77. echo "\n# mem info"
  78. if [ "$platform" = "Linux" ]; then
  79.     free -mlto
  80. elif [ "$platform" = "FreeBSD" ]; then
  81.      sysctl -a|grep Memory
  82. fi

  83. # ... disk
  84. echo "\n# disk info"
  85. df -h

  86. # ... top
  87. echo "\n# process info"
  88. if [ "$platform" = "Linux" ]; then
  89.     top -bn 1  | sed -e 's# *$##g' -e '/./{H;$!d;}' -e 'x;/PID/!d;' | grep . | head
  90. elif [ "$platform" = "FreeBSD" ]; then
  91.     top -b -d 1 | sed -e 's# *$##g' -e '/./{H;$!d;}' -e 'x;/PID/!d;' | grep . | head
  92. fi

  93. # ... port
  94. echo "\n# port info"
  95. if [ "$platform" = "Linux" ]; then
  96.     netstat -nat |grep -i listen  |awk '{print $4}' |sed  "s/.*://g" |xargs -i awk "/\t{}\//" /etc/services
  97. elif [ "$platform" = "FreeBSD" ]; then
  98.     netstat -nat |grep -i listen  |awk '{print $4}' |sed  "s/.*\.//g" | xargs -I{} awk "/\t{}\//" /etc/services
  99. fi

  100. # ... soft
  101. echo "\n# soft"
  102. if [ "$platform" = "Linux" ]; then
  103.     ls /home/soft/ | xargs -i echo {}
  104. elif [ "$platform" = "FreeBSD" ]; then
  105.     ls /home/soft/ |xargs -I{}
  106. fi
复制代码

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
2 [报告]
发表于 2011-07-22 13:51 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
3 [报告]
发表于 2011-07-22 14:05 |只看该作者
本帖最后由 rdcwayx 于 2011-07-22 14:07 编辑

很不错啊, 这个挺实用的。

在我的solaris 服务器上跑了一下,没有得到这些信息,可能只是针对linux 写的,通用性不够强:
  1. release:\t
  2. kernel_version:\t\t
  3. kernel_name:\t\t
  4. uptime:\t\t
  5. \n# cpu info
  6. \n# mem info
  7. \n# process info
  8. \n# port info
  9. \n# soft
复制代码

论坛徽章:
0
4 [报告]
发表于 2011-07-22 14:06 |只看该作者
回复 2# zooyo


    太对了,要短,小
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP