1. while true; do
  2. select input in cpu_load disk_load disk_use disk_inode mem_use tcp_status cpu_top10 mem_top10 traffic quit; do
  3. case $input in
  4. cpu_load)
  5. #CPU利用率与负载
  6. echo "---------------------------------------"
  7. i=
  8. while [[ $i -le ]]; do
  9. echo -e "\033[32m 参考值${i}\033[0m"
  10. UTIL=`vmstat |awk '{if(NR==3)print 100-$15"%"}'`
  11. USER=`vmstat |awk '{if(NR==3)print $13"%"}'`
  12. SYS=`vmstat |awk '{if(NR==3)print $14"%"}'`
  13. IOWAIT=`vmstat |awk '{if(NR==3)print $16"%"}'`
  14. echo "Util: $UTIL"
  15. echo "User use: $USER"
  16. echo "System use: $SYS"
  17. echo "I/O wait: $IOWAIT"
  18. let i++
  19. sleep
  20. done
  21. echo "---------------------------------------"
  22. break
  23. ;;
  24. disk_load)
  25. #硬盘I/O负载
  26. echo "---------------------------------------"
  27. i=
  28. while [[ $i -le ]]; do
  29. echo -e "\033[32m 参考值${i}\033[0m"
  30. UTIL=`iostat -x -k |awk '/^[v|s]/{OFS=": ";print $1,$NF"%"}'`
  31. READ=`iostat -x -k |awk '/^[v|s]/{OFS=": ";print $1,$6"KB"}'`
  32. WRITE=`iostat -x -k |awk '/^[v|s]/{OFS=": ";print $1,$7"KB"}'`
  33. IOWAIT=`vmstat |awk '{if(NR==3)print $16"%"}'`
  34. echo -e "Util:"
  35. echo -e "${UTIL}"
  36. echo -e "I/O Wait: $IOWAIT"
  37. echo -e "Read/s:\n$READ"
  38. echo -e "Write/s:\n$WRITE"
  39. i=$(($i+))
  40. sleep
  41. done
  42. echo "---------------------------------------"
  43. break
  44. ;;
  45. disk_use)
  46. #硬盘利用率
  47. DISK_LOG=/tmp/disk_use.tmp
  48. DISK_TOTAL=`fdisk -l |awk '/^Disk.*bytes/ && /\/dev/{printf $2" ";printf "%d",$3;print "GB"}'`
  49. USE_RATE=`df -h |awk '/^\/dev/{print int($5)}'`
  50. for i in $USE_RATE; do
  51. if [ $i -gt ];then
  52. PART=`df -h |awk '{if(int($5)=='''$i''') print $6}'`
  53. echo "$PART = ${i}%" >> $DISK_LOG
  54. fi
  55. done
  56. echo "---------------------------------------"
  57. echo -e "Disk total:\n${DISK_TOTAL}"
  58. if [ -f $DISK_LOG ]; then
  59. echo "---------------------------------------"
  60. cat $DISK_LOG
  61. echo "---------------------------------------"
  62. rm -f $DISK_LOG
  63. else
  64. echo "---------------------------------------"
  65. echo "Disk use rate no than 90% of the partition."
  66. echo "---------------------------------------"
  67. fi
  68. break
  69. ;;
  70. disk_inode)
  71. #硬盘inode利用率
  72. INODE_LOG=/tmp/inode_use.tmp
  73. INODE_USE=`df -i |awk '/^\/dev/{print int($5)}'`
  74. for i in $INODE_USE; do
  75. if [ $i -gt ]; then
  76. PART=`df -h |awk '{if(int($5)=='''$i''') print $6}'`
  77. echo "$PART = ${i}%" >> $INODE_LOG
  78. fi
  79. done
  80. if [ -f $INODE_LOG ]; then
  81. echo "---------------------------------------"
  82. cat $INODE_LOG
  83. rm -f $INODE_LOG
  84. else
  85. echo "---------------------------------------"
  86. echo "Inode use rate no than 90% of the partition."
  87. echo "---------------------------------------"
  88. fi
  89. break
  90. ;;
  91. mem_use)
  92. #内存利用率
  93. echo "---------------------------------------"
  94. MEM_TOTAL=`free -m |awk '{if(NR==2)printf "%.1f",$2/1024}END{print "G"}'`
  95. USE=`free -m |awk '{if(NR==2) printf "%.1f",$3/1024}END{print "G"}'`
  96. FREE=`free -m |awk '{if(NR==2) printf "%.1f",$4/1024}END{print "G"}'`
  97. CACHE=`free -m |awk '{if(NR==2) printf "%.1f",$6/1024}END{print "G"}'`
  98. echo -e "Total: $MEM_TOTAL"
  99. echo -e "Use: $USE"
  100. echo -e "Free: $FREE"
  101. echo -e "Cache: $CACHE"
  102. echo "---------------------------------------"
  103. break
  104. ;;
  105. tcp_status)
  106. #网络连接状态
  107. echo "---------------------------------------"
  108. COUNT=`ss -ant |awk '!/State/{status[$1]++}END{for(i in status) print i,status[i]}'`
  109. echo -e "TCP connection status:\n$COUNT"
  110. echo "---------------------------------------"
  111. ;;
  112. cpu_top10)
  113. #占用CPU高的前10个进程
  114. echo "---------------------------------------"
  115. CPU_LOG=/tmp/cpu_top.tmp
  116. i=
  117. while [[ $i -le ]]; do
  118. #ps aux |awk '{if($3>0.1)print "CPU: "$3"% -->",$11,$12,$13,$14,$15,$16,"(PID:"$2")" |"sort -k2 -nr |head -n 10"}' > $CPU_LOG
  119. ps aux |awk '{if($3>0.1){{printf "PID: "$2" CPU: "$3"% --> "}for(i=11;i<=NF;i++)if(i==NF)printf $i"\n";else printf $i}}' |sort -k4 -nr |head - > $CPU_LOG
  120. #循环从11列(进程名)开始打印,如果i等于最后一行,就打印i的列并换行,否则就打印i的列
  121. if [[ -n `cat $CPU_LOG` ]]; then
  122. echo -e "\033[32m 参考值${i}\033[0m"
  123. cat $CPU_LOG
  124. > $CPU_LOG
  125. else
  126. echo "No process using the CPU."
  127. break
  128. fi
  129. let i++
  130. sleep
  131. done
  132. echo "---------------------------------------"
  133. break
  134. ;;
  135. mem_top10)
  136. #占用内存高的前10个进程
  137. echo "---------------------------------------"
  138. MEM_LOG=/tmp/mem_top.tmp
  139. i=
  140. while [[ $i -le ]]; do
  141. #ps aux |awk '{if($4>0.1)print "Memory: "$4"% -->",$11,$12,$13,$14,$15,$16,"(PID:"$2")" |"sort -k2 -nr |head -n 10"}' > $MEM_LOG
  142. ps aux |awk '{if($4>0.1){{printf "PID: "$2" Memory: "$4"% --> "}for(i=11;i<=NF;i++)if(i==NF)printf $i"\n";else printf $i}}' |sort -k4 -nr |head - > $MEM_LOG
  143. if [[ -n `cat $MEM_LOG` ]]; then
  144. echo -e "\033[32m 参考值${i}\033[0m"
  145. cat $MEM_LOG
  146. > $MEM_LOG
  147. else
  148. echo "No process using the Memory."
  149. break
  150. fi
  151. i=$(($i+))
  152. sleep
  153. done
  154. echo "---------------------------------------"
  155. break
  156. ;;
  157. traffic)
  158. #查看网络流量
  159. while true; do
  160. read -p "Please enter the network card name(eth[0-9] or em[0-9] or team[0-9]): " eth
  161. if [ `ifconfig |grep -c "\<$eth\>"` -eq ]; then
  162. break
  163. else
  164. echo "Input format error or Don't have the card name, please input again."
  165. fi
  166. done
  167. echo "---------------------------------------"
  168. echo -e " In ------ Out"
  169. i=
  170. while [[ $i -le ]]; do
  171. #CentOS6和CentOS7 ifconfig输出进出流量信息位置不同:
  172. #CentOS6中RX与TX行号等于8
  173. #CentOS7中RX行号是5,TX行号是7
  174.  
  175. OLD_IN=`ifconfig $eth |awk -F'[: ]+' '/bytes/{if(NR==8)print $4;else if(NR==5)print $6}'`
  176. OLD_OUT=`ifconfig $eth |awk -F'[: ]+' '/bytes/{if(NR==8)print $9;else if(NR==7)print $6}'`
  177. sleep
  178. NEW_IN=`ifconfig $eth |awk -F'[: ]+' '/bytes/{if(NR==8)print $4;else if(NR==5)print $6}'`
  179. NEW_OUT=`ifconfig $eth |awk -F'[: ]+' '/bytes/{if(NR==8)print $9;else if(NR==7)print $6}'`
  180.  
  181. IN=`awk 'BEGIN{printf "%.1f\n",'$((${NEW_IN}-${OLD_IN}))'/1024/128}'`
  182. OUT=`awk 'BEGIN{printf "%.1f\n",'$((${NEW_OUT}-${OLD_OUT}))'/1024/128}'`
  183. echo "${IN}MB/s ${OUT}MB/s"
  184.  
  185. i=$(($i+))
  186. sleep
  187. done
  188. echo "---------------------------------------"
  189. break
  190. ;;
  191. quit)
  192. exit
  193. ;;
  194. *)
  195. echo "---------------------------------------"
  196. echo "Please enter the number."
  197. echo "---------------------------------------"
  198. break
  199. ;;

whil的更多相关文章

  1. day0203 (whil else)

    count = 0while count <= 5 : count += 1 if count == 3:break print("Loop",count) else: pr ...

  2. Linux shell循环

    条件测试 格式 test condition 或 [ condition ] 使用方括号时,要注意在条件两边加上空格,如果有操作符,运算符之间也必须有空格 测试状态:测试的结果可以用$?的值来判断,0 ...

  3. ACM: HDU 2544 最短路-Dijkstra算法

    HDU 2544最短路 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Descrip ...

  4. Mysql函数集合

    Mysql提供了很多函数 提供的常用函数集合 一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整 ...

  5. 《笨办法学Python》

    习题一 第一个程序 print "Hello World!" print "Hello Evilxr" print "I like typing th ...

  6. Ubuntu 14.04 – How to install xrdp in Ubuntu 14.04

    http://c-nergy.be/blog/?p=5305 Hello World, Ubuntu 14.04 has been released on April 17th 2014 and we ...

  7. python-打印简单公司员工信息表

    python-打印简单公司员工信息表 要求,输入name不为空,输入次数最多3次,3次后跳出程序: 知识点: raw_input str转int whil if elif else continue ...

  8. Python 学习日记(第二周)

    从这周开始我就正式学习Python 语言了.以后每周都会有一篇有关于学习Python的见闻与大家分享! Python的安装 学习的第一步首先要有一个运行的环境.所以接下来介绍一下安装的步骤. 通过Py ...

  9. HNCU1741:算法3-2:行编辑程序

    http://hncu.acmclub.com/index.php?app=problem_title&id=111&problem_id=1741 题目描述 一个简单的行编辑程序的功 ...

随机推荐

  1. 微软连续12年成为Gartner分析和BI平台魔力象限的领导者

    小悦还沉浸在新春开工大吉的工作中,微软Power BI就又迎来了一个好消息!据Gartner刚新鲜出炉的<  2019年Gartner的分析和商业智能平台魔力象限报告>,微软迄今已连续12 ...

  2. 2018-2019-2 网络对抗技术 20165228 Exp6 信息搜集与漏洞扫描

    2018-2019-2 网络对抗技术 20165228 Exp6 信息搜集与漏洞扫描 回答问题 哪些组织负责DNS,IP的管理. 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务 ...

  3. c++中好用的函数

    isdigit()返回是否是数字字符: isalpha()返回是否是字母字符: isupper()返回是否是大写字母: islower()返回是否是小写字母:

  4. 图解HTTP阅读笔记(1)-网络基础TCP/IP

    1.TCP/IP协议族 TCP/IP这个概念对大家来说很熟悉,之前我的了解它只是一个协议.今天阅读才知道TCP/IP实际上是一个协议族,其中HTTP协议属于该协议族的一个子集.图1是TCP/IP协议族 ...

  5. Linux系统一些常用命令(持续增加)

    这些命令什么的全是从网上找的,防止忘记,留下来备忘 1.linux服务器如何从另一台服务器拷东西:可以用scp命令scp user@remote.machine:/remote/path /local ...

  6. DJango 前三天小结

    一 DJango 所有命令: 1下载: 控制台:pip install django== ​pip install django== -i 源解释器:找到解释器,点击加号搜索django 2创建项目; ...

  7. Notepad++ 配置python

    Notepad++配置: 1. 运行命令配置 单击运行,出现对话框 在弹出的窗口里填入:cmd /k cd "$(CURRENT_DIRECTORY)" &  python ...

  8. SQL语句整理

  9. Java递归:一个NB自慰的操作

    递归的核心思想:自身调用自身 示例一:求5的阶乘 常规方法: 使用while循环 1 public class Demo01 { 2 3 public static void main(String[ ...

  10. osx免驱网卡推荐

    1. 单频2.4G芯片为Realtek RTL8188cu, RTL8192cu,都可以用,如TP-Link TL-WN821N.TP-Link TL-WN823N等等:2. 单频2.4G芯片为Med ...