Пишу диплом, и, походу дела нужно отобразить график загруженности сервера при работе. Утилита top для этого очень хорошо подходит, из нее можно выдернуть загруженность процессора, оперативной памяти и свап-файла. Вообщем, запустили её на сервере, что б она снимала данные каждую 0.01 секунды на несколько часов, вот таким вот образом:
| Код | top -d 0.01 > top.log
|
Файл, конечно же получился большой Но суть не в этом, если посмотреть этот файл текстовым редактором, например nano, можно увидеть следующее::
| Код | ^[[H^[[2J^[[m^[(Btop - 13:48:41 up 3:30, 3 users, load average: 0.78, 0.40, 0.39^[[m^[(B^[[39;49m^[[K Tasks:^[[m^[(B^[[39;49m^[[m^[(B 109 ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B 2 ^[[m^[(B^[[39;49mrunning,^[[m^[(B^[[39;49m^[[m^[(B 107 ^[[m^[(B^[[39;49msleeping,^[[m^[(B^[[39;49m^[[m^[(B 0 ^[[m^[(B^[[39;49mstopped,^[[m^[(B^[[$ Cpu(s):^[[m^[(B^[[39;49m^[[m^[(B 20.2%^[[m^[(B^[[39;49mus,^[[m^[(B^[[39;49m^[[m^[(B 1.9%^[[m^[(B^[[39;49msy,^[[m^[(B^[[39;49m^[[m^[(B 0.0%^[[m^[(B^[[39;49mni,^[[m^[(B^[[39;49m^[[m^[(B 77.6%^[[m^[(B^[[39;49mid,^[[m^[(B^[[39;49m^[[m^[(B$ $49mbuffers^[[m^[(B^[[39;49m^[[K Swap:^[[m^[(B^[[39;49m^[[m^[(B 2578392k ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B 0k ^[[m^[(B^[[39;49mused,^[[m^[(B^[[39;49m^[[m^[(B 2578392k ^[[m^[(B^[[39;49mfree,^[[m^[(B^[[39;49m^[[m^[(B 619688k ^[[m^[(B^[[39;49mcac$ ^[[6;1H ^[[7m PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND ^[[m^[(B^[[39;49m^[[K ^[[m^[(B 3914 root 20 0 360m 42m 11m S 16 0.8 25:14.83 Xorg ^[[m^[(B^[[39;49m ^[[m^[(B 4272 che 20 0 21108 11m 7772 S 14 0.2 24:54.00 cairo-clock ^[[m^[(B^[[39;49m ^[[m^[(B^[[m^[(B 8616 che 20 0 21272 11m 7732 R 14 0.2 0:12.37 cairo-clock ^[[m^[(B^[[39;49m ^[[m^[(B 4425 che 20 0 59424 35m 9356 S 2 0.7 4:31.23 compiz.real ^[[m^[(B^[[39;49m ^[[m^[(B 1 root 20 0 2100 688 588 S 0 0.0 0:01.29 init ^[[m^[(B^[[39;49m ^[[m^[(B 2 root 15 -5 0 0 0 S 0 0.0 0:00.00 kthreadd ^[[m^[(B^[[39;49m ^[[m^[(B 3 root RT -5 0 0 0 S 0 0.0 0:00.00 migration/0 ^[[m^[(B^[[39;49m ^[[m^[(B 4 root 15 -5 0 0 0 S 0 0.0 0:00.13 ksoftirqd/0 ^[[m^[(B^[[39;49m ^[[m^[(B 5 root RT -5 0 0 0 S 0 0.0 0:00.00 watchdog/0 ^[[m^[(B^[[39;49m ^[[m^[(B 6 root RT -5 0 0 0 S 0 0.0 0:00.00 migration/1 ^[[m^[(B^[[39;49m ^[[m^[(B 7 root 15 -5 0 0 0 S 0 0.0 0:00.16 ksoftirqd/1 ^[[m^[(B^[[39;49m ^[[m^[(B 8 root RT -5 0 0 0 S 0 0.0 0:00.00 watchdog/1 ^[[m^[(B^[[39;49m ^[[m^[(B 9 root 15 -5 0 0 0 S 0 0.0 0:00.69 events/0 ^[[m^[(B^[[39;49m ^[[m^[(B 10 root 15 -5 0 0 0 S 0 0.0 0:00.60 events/1 ^[[m^[(B^[[39;49m ^[[m^[(B 11 root 15 -5 0 0 0 S 0 0.0 0:00.00 khelper ^[[m^[(B^[[39;49m ^[[m^[(B 44 root 15 -5 0 0 0 S 0 0.0 0:00.03 kblockd/0 ^[[m^[(B^[[39;49m ^[[m^[(B 45 root 15 -5 0 0 0 S 0 0.0 0:00.03 kblockd/1 ^[[m^[(B^[[39;49m^[[6;1H^[[K^[[H Tasks:^[[m^[(B^[[39;49m^[[m^[(B 109 ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B 2 ^[[m^[(B^[[39;49mrunning,^[[m^[(B^[[39;49m^[[m^[(B 107 ^[[m^[(B^[[39;49msleeping,^[[m^[(B^[[39;49m^[[m^[(B 0 ^[[m^[(B^[[39;49mstopped,^[[m^[(B^[[$ Cpu(s):^[[m^[(B^[[39;49m^[[m^[(B 33.3%^[[m^[(B^[[39;49mus,^[[m^[(B^[[39;49m^[[m^[(B 0.0%^[[m^[(B^[[39;49msy,^[[m^[(B^[[39;49m^[[m^[(B 0.0%^[[m^[(B^[[39;49mni,^[[m^[(B^[[39;49m^[[m^[(B 66.7%^[[m^[(B^[[39;49mid,^[[m^[(B^[[39;49m^[[m^[(B$ Mem: ^[[m^[(B^[[39;49m^[[m^[(B 5192196k ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B 1103892k ^[[m^[(B^[[39;49mused,^[[m^[(B^[[39;49m^[[m^[(B 4088304k ^[[m^[(B^[[39;49mfree,^[[m^[(B^[[39;49m^[[m^[(B 79540k ^[[m^[(B^[[39;49mbuf$ Swap:^[[m^[(B^[[39;49m^[[m^[(B 2578392k ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B 0k ^[[m^[(B^[[39;49mused,^[[m^[(B^[[39;49m^[[m^[(B 2578392k ^[[m^[(B^[[39;49mfree,^[[m^[(B^[[39;49m^[[m^[(B 619688k ^[[m^[(B^[[39;49mcac$ ^[[6;1H ^[[7m PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND ^[[m^[(B^[[39;49m^[[K ^[[m^[(B 1 root 20 0 2100 688 588 S 0 0.0 0:01.29 init ^[[m^[(B^[[39;49m ^[[m^[(B 2 root 15 -5 0 0 0 S 0 0.0 0:00.00 kthreadd ^[[m^[(B^[[39;49m ^[[m^[(B 3 root RT -5 0 0 0 S 0 0.0 0:00.00 migration/0 ^[[m^[(B^[[39;49m ^[[m^[(B 4 root 15 -5 0 0 0 S 0 0.0 0:00.13 ksoftirqd/0 ^[[m^[(B^[[39;49m ^[[m^[(B 5 root RT -5 0 0 0 S 0 0.0 0:00.00 watchdog/0 ^[[m^[(B^[[39;49m ^[[m^[(B 6 root RT -5 0 0 0 S 0 0.0 0:00.00 migration/1 ^[[m^[(B^[[39;49m ^[[m^[(B 7 root 15 -5 0 0 0 S 0 0.0 0:00.16 ksoftirqd/1 ^[[m^[(B^[[39;49m ^[[m^[(B 8 root RT -5 0 0 0 S 0 0.0 0:00.00 watchdog/1 ^[[m^[(B^[[39;49m ^[[m^[(B 9 root 15 -5 0 0 0 S 0 0.0 0:00.69 events/0 ^[[m^[(B^[[39;49m ^[[m^[(B 10 root 15 -5 0 0 0 S 0 0.0 0:00.60 events/1 ^[[m^[(B^[[39;49m ^[[m^[(B 11 root 15 -5 0 0 0 S 0 0.0 0:00.00 khelper ^[[m^[(B^[[39;49m ^[[m^[(B 44 root 15 -5 0 0 0 S 0 0.0 0:00.03 kblockd/0 ^[[m^[(B^[[39;49m ^[[m^[(B 45 root 15 -5 0 0 0 S 0 0.0 0:00.03 kblockd/1 ^[[m^[(B^[[39;49m ^[[m^[(B 47 root 15 -5 0 0 0 S 0 0.0 0:00.00 kacpid ^[[m^[(B^[[39;49m ^[[m^[(B 48 root 15 -5 0 0 0 S 0 0.0 0:00.00 kacpi_notify ^[[m^[(B^[[39;49m ^[[m^[(B 135 root 15 -5 0 0 0 S 0 0.0 0:00.01 kseriod ^[[m^[(B^[[39;49m ^[[m^[(B 176 root 20 0 0 0 0 S 0 0.0 0:00.00 pdflush ^[[m^[(B^[[39;49m^[[6;1H^[[K^[[H Tasks:^[[m^[(B^[[39;49m^[[m^[(B 109 ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B 2 ^[[m^[(B^[[39;49mrunning,^[[m^[(B^[[39;49m^[[m^[(B 107 ^[[m^[(B^[[39;49msleeping,^[[m^[(B^[[39;49m^[[m^[(B 0 ^[[m^[(B^[[39;49mstopped,^[[m^[(B^[[$ Cpu(s):^[[m^[(B^[[39;49m^[[m^[(B 33.3%^[[m^[(B^[[39;49mus,^[[m^[(B^[[39;49m^[[m^[(B 0.0%^[[m^[(B^[[39;49msy,^[[m^[(B^[[39;49m^[[m^[(B 0.0%^[[m^[(B^[[39;49mni,^[[m^[(B^[[39;49m^[[m^[(B 66.7%^[[m^[(B^[[39;49mid,^[[m^[(B^[[39;49m^[[m^[(B$ Mem: ^[[m^[(B^[[39;49m^[[m^[(B 5192196k ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B 1103892k ^[[m^[(B^[[39;49mused,^[[m^[(B^[[39;49m^[[m^[(B 4088304k ^[[m^[(B^[[39;49mfree,^[[m^[(B^[[39;49m^[[m^[(B 79540k ^[[m^[(B^[[39;49mbuf$ Swap:^[[m^[(B^[[39;49m^[[m^[(B 2578392k ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B 0k ^[[m^[(B^[[39;49mused,^[[m^[(B^[[39;49m^[[m^[(B 2578392k ^[[m^[(B^[[39;49mfree,^[[m^[(B^[[39;49m^[[m^[(B 619688k ^[[m^[(B^[[39;49mcac$ ^[[6;1H
|
Вообщем, вопрос, как привести эти данные в удобочитаемый вид. Или может, кто подскажет аналогичные top утилиты, что б нормально можно было снять данные? Спасибо большое! |