Chinaunix首页 | 论坛 | 博客
  • 博客访问: 84566
  • 博文数量: 18
  • 博客积分: 454
  • 博客等级: 下士
  • 技术积分: 237
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-03 13:38
文章分类

全部博文(18)

文章存档

2012年(18)

分类: LINUX

2012-10-23 13:28:23

闲来无事, 就对一台服务器做了一下统计,看看大家最长使用的命令是那些。结果如下:

  1. [r3g@xxx ~]$ sudo ./top10cmds.sh -n 20
  2. ls 4803
  3. cd 3507
  4. vi 1839
  5. vim 1043
  6. cvs 896
  7. sudo 802
  8. make 638
  9. pwd 372
  10. exit 277
  11. cp 265
  12. rm 221
  13. grep 196
  14. ./generate-xxx 152
  15. sz 149
  16. su 124
  17. find 121
  18. gcc 119
  19. ll 102
  20. * 85
  21. man 83
  22. [r3g@xxx ~]$

看到没有, ls是第一位的,然后是cd。
脚本:


  1. #! /bin/bash

  2. # 统计系统最常使用的命令
  3. # 默认输出前十名
  4. # -n 选项可以制定输出个数
  5. # Usage:
  6. # top10cmds [-n num]

  7. TMPFILE=/tmp/commands$$.tmp
  8. CMD_HISTORY_FILE=.bash_history
  9. NUM=10

  10. trap 'rm -f $TMPFILE' EXIT ERR
  11. echo "" > $TMPFILE

  12. check_args()
  13. {
  14. case "$#" in
  15. 0)
  16. NUM=10;;
  17. 2)
  18. if [ $1="-n" ]
  19. then
  20. case "$2" in
  21. *[!0-9]*)
  22. echo "Usage : $0 [-n num]"
  23. exit 2
  24. ;;
  25. *)
  26. NUM=$2
  27. ;;
  28. esac
  29. else
  30. echo "Usage : $0 [-n num]"
  31. exit 2
  32. fi
  33. ;;
  34. *)
  35. echo "Usage: $0 [-n num]"
  36. exit 2;;
  37. esac
  38. }


  39. # 检查参数
  40. check_args "$@"
  41. # 侦测所有的命令历史文件
  42. for i in $(ls /home)
  43. do
  44. file="/home/$i/$CMD_HISTORY_FILE"
  45. if [ -e "$file" ]
  46. then
  47. cat $file >> $TMPFILE
  48. fi
  49. done
  50. # 处理
  51. awk '{print $1}' $TMPFILE | sort | uniq -c |\
  52. sort -k1,1nr |\
  53. head -n $NUM |\
  54. awk '{print $2,$1}'



阅读(1275) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~