Chinaunix首页 | 论坛 | 博客
  • 博客访问: 87190
  • 博文数量: 20
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 120
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-17 16:15
文章分类

全部博文(20)

文章存档

2013年(20)

我的朋友

分类: 系统运维

2013-04-04 22:41:51

      top命令的重要性和使用方法不多说了,这里终点讨论如何保存top命令的输出信息。
     保存top命令的输出到一个文件的方法是:top -n1b > topinfo.txt,这没什么好奇的,但是输出的信息的格式都是默认的。

  1. [root@localhost ~]# top -n1b > topinfo.txt
  2. [root@localhost ~]# cat topinfo.txt
  3. top - 14:14:18 up 17:49, 3 users, load average: 0.00, 0.02, 0.44
  4. Tasks: 70 total, 1 running, 69 sleeping, 0 stopped, 0 zombie
  5. Cpu(s): 2.4%us, 2.7%sy, 0.1%ni, 94.1%id, 0.4%wa, 0.0%hi, 0.3%si, 0.0%st
  6. Mem: 1035140k total, 903792k used, 131348k free, 236160k buffers
  7. Swap: 2097144k total, 0k used, 2097144k free, 545312k cached

  8.   PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  9.     1 root 15 0 2072 588 504 S 0.0 0.1 0:00.97 init
  10.     2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
  11.     3 root 39 19 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0
  12.     4 root RT -5 0 0 0 S 0.0 0.0 0:00.01 watchdog/0
  13.     5 root 10 -5 0 0 0 S 0.0 0.0 0:00.20 events/0
  14.     6 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
  15.     7 root 12 -5 0 0 0 S 0.0 0.0 0:00.05 kthread
  16.    10 root 10 -5 0 0 0 S 0.0 0.0 0:00.65 kblockd/0
  17.    11 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
  18.   179 root 18 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/0
  19.   182 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khubd
  20.   184 root 19 -5 0 0 0 S 0.0 0.0 0:00.00 kseriod
  21.   249 root 15 0 0 0 0 S 0.0 0.0 0:00.10 pdflush
  22.   250 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kswapd0
  23.   251 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0
  24.   473 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 kpsmoused
  25.   497 root 16 -5 0 0 0 S 0.0 0.0 0:00.00 ata/0
  26.   498 root 16 -5 0 0 0 S 0.0 0.0 0:00.00 ata_aux
  27.   509 root 10 -5 0 0 0 S 0.0 0.0 0:00.08 mpt_poll_0
  28.   510 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0
  29.   513 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kstriped
  30.   522 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 ksnapd
  31.   533 root 10 -5 0 0 0 S 0.0 0.0 0:07.86 kjournald
  32.   564 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 kauditd
  33.   597 root 21 -4 3080 1640 492 S 0.0 0.2 0:00.60 udevd
  34.  1290 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kgameportd
  35.  2170 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kmpathd/0
  36.  2171 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kmpath_handlerd
  37.  2195 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kjournald
  38.  2416 root 18 0 2168 512 396 S 0.0 0.0 0:00.23 mcstransd
  39.  2648 root 15 0 2316 712 412 S 0.0 0.1 0:00.07 dhclient
  40.  2805 root 16 0 11584 9952 240 S 0.0 1.0 0:00.01 restorecond
  41.  2819 root 18 0 1728 576 480 S 0.0 0.1 0:00.03 syslogd
  42.  2822 root 15 0 1680 392 328 S 0.0 0.0 0:00.00 klogd
  43.  2861 dbus 18 0 12996 1072 844 S 0.0 0.1 0:00.04 dbus-daemon
  44.  2907 root 24 0 12728 1356 604 S 0.0 0.1 0:02.66 pcscd
  45.  2921 haldaemo 15 0 6464 4536 1688 S 0.0 0.4 0:03.72 hald
  46.  2922 root 18 0 3156 1076 916 S 0.0 0.1 0:00.00 hald-runner
  47.  2930 haldaemo 18 0 2020 812 716 S 0.0 0.1 0:00.00 hald-addon-acpi
  48.  2943 haldaemo 15 0 2020 820 720 S 0.0 0.1 0:00.00 hald-addon-keyb
  49.  2952 root 18 0 1976 768 684 S 0.0 0.1 0:23.22 hald-addon-stor
  50.  2985 root 25 0 1916 452 372 S 0.0 0.0 0:00.00 hidd
  51.  3010 root 18 0 103m 792 544 S 0.0 0.1 0:00.04 tgtd
  52.  3011 root 18 0 3304 340 140 S 0.0 0.0 0:00.18 tgtd
  53.  3049 root 24 0 5140 764 520 S 0.0 0.1 0:00.00 hpiod
  54.  3054 root 15 0 13444 4808 1020 S 0.0 0.5 0:00.16 python
  55.  3072 root 15 0 7068 1064 668 S 0.0 0.1 0:00.01 sshd
  56.  3193 root 15 0 1900 472 392 S 0.0 0.0 0:00.00 gpm
  57.  3207 root 18 0 5296 1184 648 S 0.0 0.1 0:00.11 crond
  58.  3221 root 18 0 14436 2216 1420 S 0.0 0.2 0:00.01 smbd
  59.  3224 root 15 0 9408 1368 912 S 0.0 0.1 0:00.28 nmbd
  60.  3265 root 18 0 14436 1076 280 S 0.0 0.1 0:00.00 smbd
  61.  3276 root 18 0 3508 464 284 S 0.0 0.0 0:00.00 smartd
  62.  3280 root 16 0 2892 1304 996 S 0.0 0.1 0:00.12 login
  63.  3281 root 16 0 1664 440 384 S 0.0 0.0 0:00.00 mingetty
  64.  3284 root 20 0 1664 444 384 S 0.0 0.0 0:00.00 mingetty
  65.  3289 root 18 0 1664 444 384 S 0.0 0.0 0:00.00 mingetty
  66.  3297 root 18 0 1664 448 384 S 0.0 0.0 0:00.00 mingetty
  67.  3300 root 18 0 1664 448 384 S 0.0 0.0 0:00.00 mingetty
  68.  3336 root 34 19 25664 10m 2152 S 0.0 1.0 0:00.15 yum-updatesd
  69.  3338 root 34 19 2560 1184 984 S 0.0 0.1 0:00.32 gam_server
  70.  3339 root 17 0 4632 1492 1224 S 0.0 0.1 0:00.03 bash
  71.  7387 root 15 0 0 0 0 S 0.0 0.0 0:00.20 pdflush
  72.  9219 root 25 0 4536 1260 1100 S 0.0 0.1 0:00.00 mysqld_safe
  73.  9269 mysql 15 0 134m 18m 4488 S 0.0 1.8 0:01.26 mysqld
  74. 10548 root 15 0 9924 2856 2296 S 0.0 0.3 0:00.42 sshd
  75. 10550 root 15 0 4640 1452 1184 S 0.0 0.1 0:00.03 bash
  76. 10684 root 18 0 10084 2868 2296 S 0.0 0.3 0:00.52 sshd
  77. 10686 root 15 0 4640 1504 1228 S 0.0 0.1 0:00.05 bash
  78. 11432 root 15 0 2200 872 692 R 0.0 0.1 0:00.00 top

  79. [root@localhost ~]#


     如何修改这些默认的设置呢?比如输出结果中的进程部分只包含cmd、pid、%cpu、%mem等等。使用脚本比较繁琐而且有些也是无法实现的,比如保存的信息里有每颗cpu的负载信息

下面是修改top -n1b输出的默认设置的步骤:
第一步:执行top命令


  1. top - 14:16:56 up 17:52, 3 users, load average: 0.07, 0.02, 0.38
  2. Tasks: 70 total, 2 running, 68 sleeping, 0 stopped, 0 zombie
  3. Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
  4. Mem: 1035140k total, 904040k used, 131100k free, 236368k buffers
  5. Swap: 2097144k total, 0k used, 2097144k free, 545320k cached

  6.   PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  7. 11434 root 18 0 2204 988 804 R 0.3 0.1 0:00.04 top
  8.     1 root 15 0 2072 588 504 S 0.0 0.1 0:00.97 init
  9.     2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
  10.     3 root 34 19 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0
  11.     4 root RT -5 0 0 0 S 0.0 0.0 0:00.01 watchdog/0
  12.     5 root 10 -5 0 0 0 S 0.0 0.0 0:00.20 events/0
  13.     6 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
  14.     7 root 12 -5 0 0 0 S 0.0 0.0 0:00.05 kthread
  15.    10 root 10 -5 0 0 0 S 0.0 0.0 0:00.65 kblockd/0
  16.    11 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
  17.   179 root 18 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/0
  18.   182 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khubd
  19.   184 root 19 -5 0 0 0 S 0.0 0.0 0:00.00 kseriod
  20.   249 root 15 0 0 0 0 S 0.0 0.0 0:00.10 pdflush
  21.   250 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kswapd0
  22.   251 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0

第二步:修改输出格式,我这里演示:显示每颗cpu的信息,和进程部分只显示cmd、pid、%cpu、%mem。
    按1

  1. top - 14:19:11 up 17:54, 3 users, load average: 0.00, 0.01, 0.32
  2. Tasks: 70 total, 1 running, 69 sleeping, 0 stopped, 0 zombie
  3. Cpu0 : 0.1%us, 0.1%sy, 0.0%ni, 99.4%id, 0.0%wa, 0.1%hi, 0.2%si, 0.0%st
  4. Mem: 1035140k total, 904164k used, 130976k free, 236552k buffers
  5. Swap: 2097144k total, 0k used, 2097144k free, 545320k cached

  6.   PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  7. 11434 root 18 0 2204 988 804 R 0.3 0.1 0:00.22 top
  8.     1 root 15 0 2072 588 504 S 0.0 0.1 0:00.97 init
  9.     2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
  10.     3 root 34 19 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0
  11.     4 root RT -5 0 0 0 S 0.0 0.0 0:00.01 watchdog/0
  12.     5 root 10 -5 0 0 0 S 0.0 0.0 0:00.20 events/0
  13.     6 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
  14.     7 root 12 -5 0 0 0 S 0.0 0.0 0:00.05 kthread
  15.    10 root 10 -5 0 0 0 S 0.0 0.0 0:00.65 kblockd/0
  16.    11 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
  17.   179 root 18 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/0
  18.   182 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khubd
  19.   184 root 19 -5 0 0 0 S 0.0 0.0 0:00.00 kseriod
  20.   249 root 15 0 0 0 0 S 0.0 0.0 0:00.10 pdflush
  21.   250 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kswapd0
  22.   251 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0

按f:

  1. Current Fields: AEHIOQTWKNMbcdfgjplrsuvyzX for window 1:Def
  2. Toggle fields via field letter, type any other key to return

  3. * A: PID = Process Id s: DATA = Data+Stack size (kb) 0x00100000 PF_USEDFPU (thru 2.4)
  4. * H: PR = Priority v: nDRT = Dirty Pages count
  5. * I: NI = Nice value y: WCHAN = Sleeping in Function
  6. * O: VIRT = Virtual Image (kb) z: Flags = Task Flags <sched.h>
  7. * Q: RES = Resident size (kb) * X: COMMAND = Command name/line
  8. * T: SHR = Shared Mem size (kb)
  9. * W: S = Process Status Flags field:
  10. * K: %CPU = CPU usage 0x00000001 PF_ALIGNWARN
  11. * N: %MEM = Memory usage (RES) 0x00000002 PF_STARTING
  12. * M: TIME+ = CPU Time, hundredths 0x00000004 PF_EXITING
  13.   b: PPID = Parent Process Pid 0x00000040 PF_FORKNOEXEC
  14.   c: RUSER = Real user name 0x00000100 PF_SUPERPRIV
  15.   d: UID = User Id 0x00000200 PF_DUMPCORE
  16.   f: GROUP = Group Name 0x00000400 PF_SIGNALED
  17.   g: TTY = Controlling Tty 0x00000800 PF_MEMALLOC
  18.   j: P = Last used cpu (SMP) 0x00002000 PF_FREE_PAGES (2.5)
  19.   p: SWAP = Swapped size (kb) 0x00008000 debug flag (2.5)
  20.   l: TIME = CPU Time 0x00024000 special threads (2.5)
  21.   r: CODE = Code size (kb) 0x001D0000 special states (2.5)

定制输出信息,按A、H、I、O、Q、T、W去掉不需要的信息:

  1. top - 14:22:29 up 17:58, 3 users, load average: 0.00, 0.00, 0.25
  2. Tasks: 70 total, 1 running, 69 sleeping, 0 stopped, 0 zombie
  3. Cpu0 : 0.1%us, 0.2%sy, 0.5%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.4%si, 0.0%st
  4. Mem: 1035140k total, 905032k used, 130108k free, 236828k buffersSwap: 2097144k total, 0k used, 2097144k free, 545320k cached

  5. USER %CPU %MEM TIME+ COMMAND
  6. root 0.0 0.1 0:00.97 init
  7. root 0.0 0.0 0:00.00 migration/0
  8. root 0.0 0.0 0:00.07 ksoftirqd/0
  9. root 0.0 0.0 0:00.01 watchdog/0
  10. root 0.0 0.0 0:00.21 events/0
  11. root 0.0 0.0 0:00.00 khelper
  12. root 0.0 0.0 0:00.05 kthread
  13. root 0.0 0.0 0:00.65 kblockd/0
  14. root 0.0 0.0 0:00.00 kacpid
  15. root 0.0 0.0 0:00.00 cqueue/0
  16. root 0.0 0.0 0:00.00 khubd
  17. root 0.0 0.0 0:00.00 kseriod
  18. root 0.0 0.0 0:00.10 pdflush
  19. root 0.0 0.0 0:00.00 kswapd0
  20. root 0.0 0.0 0:00.00 aio/0
  21. root 0.0 0.0 0:00.00 kpsmoused

按W,保存设置,在~/.toprc。
按q,退出top命令
现在再执行top -n1b试试结果吧:

  1. [root@localhost ~]# top -n1b > topinfo.txt
  2. [root@localhost ~]# cat topinfo.txt
  3. top - 14:24:37 up 18:00, 3 users, load average: 0.00, 0.00, 0.22
  4. Tasks: 70 total, 1 running, 69 sleeping, 0 stopped, 0 zombie
  5. Cpu0 : 2.4%us, 2.6%sy, 0.1%ni, 94.2%id, 0.4%wa, 0.0%hi, 0.3%si, 0.0%st
  6. Mem: 1035140k total, 905032k used, 130108k free, 237004k buffers
  7. Swap: 2097144k total, 0k used, 2097144k free, 545316k cached

  8. USER %CPU %MEM TIME+ COMMAND
  9. root 0.0 0.1 0:00.97 init
  10. root 0.0 0.0 0:00.00 migration/0
  11. root 0.0 0.0 0:00.07 ksoftirqd/0
  12. root 0.0 0.0 0:00.01 watchdog/0
  13. root 0.0 0.0 0:00.21 events/0
  14. root 0.0 0.0 0:00.00 khelper
  15. root 0.0 0.0 0:00.05 kthread
  16. root 0.0 0.0 0:00.65 kblockd/0
  17. root 0.0 0.0 0:00.00 kacpid
  18. root 0.0 0.0 0:00.00 cqueue/0
  19. root 0.0 0.0 0:00.00 khubd
  20. root 0.0 0.0 0:00.00 kseriod
  21. root 0.0 0.0 0:00.10 pdflush
  22. root 0.0 0.0 0:00.00 kswapd0
  23. root 0.0 0.0 0:00.00 aio/0
  24. root 0.0 0.0 0:00.00 kpsmoused
  25. root 0.0 0.0 0:00.00 ata/0
  26. root 0.0 0.0 0:00.00 ata_aux
  27. root 0.0 0.0 0:00.08 mpt_poll_0
  28. root 0.0 0.0 0:00.00 scsi_eh_0
  29. root 0.0 0.0 0:00.00 kstriped
  30. root 0.0 0.0 0:00.00 ksnapd
  31. root 0.0 0.0 0:07.93 kjournald
  32. root 0.0 0.0 0:00.00 kauditd
  33. root 0.0 0.2 0:00.60 udevd
  34. root 0.0 0.0 0:00.00 kgameportd
  35. root 0.0 0.0 0:00.00 kmpathd/0
  36. root 0.0 0.0 0:00.00 kmpath_handlerd
  37. root 0.0 0.0 0:00.00 kjournald
  38. root 0.0 0.0 0:00.23 mcstransd
  39. root 0.0 0.1 0:00.07 dhclient
  40. root 0.0 1.0 0:00.01 restorecond
  41. root 0.0 0.1 0:00.03 syslogd
  42. root 0.0 0.0 0:00.00 klogd
  43. dbus 0.0 0.1 0:00.04 dbus-daemon
  44. root 0.0 0.1 0:02.69 pcscd
  45. haldaemo 0.0 0.4 0:03.74 hald
  46. root 0.0 0.1 0:00.00 hald-runner
  47. haldaemo 0.0 0.1 0:00.00 hald-addon-acpi
  48. haldaemo 0.0 0.1 0:00.00 hald-addon-keyb
  49. root 0.0 0.1 0:23.44 hald-addon-stor
  50. root 0.0 0.0 0:00.00 hidd
  51. root 0.0 0.1 0:00.04 tgtd
  52. root 0.0 0.0 0:00.18 tgtd
  53. root 0.0 0.1 0:00.00 hpiod
  54. root 0.0 0.5 0:00.16 python
  55. root 0.0 0.1 0:00.01 sshd
  56. root 0.0 0.0 0:00.00 gpm
  57. root 0.0 0.1 0:00.11 crond
  58. root 0.0 0.2 0:00.01 smbd
  59. root 0.0 0.1 0:00.29 nmbd
  60. root 0.0 0.1 0:00.00 smbd
  61. root 0.0 0.0 0:00.00 smartd
  62. root 0.0 0.1 0:00.12 login
  63. root 0.0 0.0 0:00.00 mingetty
  64. root 0.0 0.0 0:00.00 mingetty
  65. root 0.0 0.0 0:00.00 mingetty
  66. root 0.0 0.0 0:00.00 mingetty
  67. root 0.0 0.0 0:00.00 mingetty
  68. root 0.0 1.0 0:00.16 yum-updatesd
  69. root 0.0 0.1 0:00.32 gam_server
  70. root 0.0 0.1 0:00.03 bash
  71. root 0.0 0.0 0:00.20 pdflush
  72. root 0.0 0.1 0:00.00 mysqld_safe
  73. mysql 0.0 1.8 0:01.27 mysqld
  74. root 0.0 0.3 0:00.60 sshd
  75. root 0.0 0.1 0:00.04 bash
  76. root 0.0 0.3 0:00.52 sshd
  77. root 0.0 0.1 0:00.05 bash
  78. root 0.0 0.1 0:00.00 top

  79. [root@localhost ~]#
这种方法对于一台机器来说比较容易,如果是批量部署的话还需拷贝文件,就比较繁琐了。不知有没有更好的办法?期待你的答案!
一起学习,一起进步!
阅读(1079) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~