Odpowiedzi:
Ron podał link do wyjścia htopa do pliku czytelnego dla człowieka oraz cytat z najlepiej głosowanej odpowiedzi twórcy htopa.
Jednak nieco dalej na tej samej stronie znajduje się rozwiązanie wykorzystujące konwersję ANSI na HTML. Krótko, zainstaluj aha
z centrum oprogramowania, a następnie uruchom:
echo q | htop | aha --black --line-fix > htop.html
Oto jak wygląda kilka pierwszych wierszy:
1 [||||||||||||||||||||||||||||||||| 42.9%] Tasks: 73, 251 thr; 1 running
2 [|||||| 7.1%] Load average: 0.28 0.32 0.32
Mem[|||||||||||||||||||||||||||||||||| 581/3916MB] Uptime: 03:09:25
Swp[ 0/4056MB]
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
9785 dkb 20 0 31544 2464 1312 R 22.2 0.1 0:00.09 htop
3503 dkb 20 0 1065M 59684 16344 S 7.4 1.5 6:25.43 mpv --profile=pseudo-gui -- file:///home/dkb/Downloads/ONX
1 root 20 0 33760 3088 1488 S 0.0 0.1 0:01.62 /sbin/init
276 root 20 0 19472 652 460 S 0.0 0.0 0:00.19 upstart-udev-bridge --daemon
281 root 20 0 52592 2640 1016 S 0.0 0.1 0:00.76 /lib/systemd/systemd-udevd --daemon
577 root 20 0 15256 632 388 S 0.0 0.0 0:00.05 upstart-socket-bridge --daemon
662 root 20 0 15272 416 200 S 0.0 0.0 0:00.04 upstart-file-bridge --daemon
677 syslog 20 0 249M 1304 836 S 0.0 0.0 0:00.01 rsyslogd
678 syslog 20 0 249M 1304 836 S 0.0 0.0 0:00.00 rsyslogd
679 syslog 20 0 249M 1304 836 S 0.0 0.0 0:00.02 rsyslogd
675 syslog 20 0 249M 1304 836 S 0.0 0.0 0:00.04 rsyslogd
680 messagebu 20 0 39860 1968 1044 S 0.0 0.0 0:00.52 dbus-daemon --system --fork
Bezpośrednio od autora htop
:
Nie, nie ma „miłego” sposobu na przesłanie danych wyjściowych htop do pliku. Jest to aplikacja interaktywna i wykorzystuje procedury przerysowywania terminali do wytworzenia interfejsu (w związku z tym pipowanie ma taki sam sens, jak na przykład pipowanie vima do pliku tekstowego - otrzymasz podobne wyniki).
Aby uzyskać informacje o swoich procesach w formacie tekstowym, użyj
ps
. Na przykładps auxf > file.txt
daje wiele łatwych do przeanalizowania informacji (lub ps aux, jeśli nie chcesz formatować drzewa - więcej informacji znajdziesz w man ps).
echo | htop > /tmp/htop.out
//htop.out ma terminal save/load console_sequence
head -c -10 /tmp/htop.out | tail -c +10
// po prostu użyj paska głowy i ogona screen reset console_sequence
// 10
bajty były z grubsza
Zwykle wykonuję następujące czynności:
top
control-c
a następnie przewiń w górę, aby móc skopiować / wkleić:
rinzwind@schijfwereld:~$ top
top - 18:58:05 up 13 min, 2 users, load average: 0,18, 0,35, 0,24
Tasks: 252 total, 1 running, 251 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3,4 us, 0,7 sy, 0,5 ni, 95,3 id, 0,1 wa, 0,0 hi, 0,0 si, 0,0 st
KiB Mem: 12190608 total, 2007692 used, 10182916 free, 50292 buffers
KiB Swap: 24414204 total, 0 used, 24414204 free. 739236 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1093 rinzwind 20 0 364616 8824 7252 S 6,2 0,1 0:00.94 ibus-daemon
2525 rinzwind 20 0 29192 3048 2540 R 6,2 0,0 0:00.02 top
1 root 20 0 185008 5564 3840 S 0,0 0,0 0:00.77 systemd
2 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0,0 0,0 0:00.00 ksoftirqd/0
5 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kworker/0:+
7 root 20 0 0 0 0 S 0,0 0,0 0:00.32 rcu_sched
8 root 20 0 0 0 0 S 0,0 0,0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0,0 0,0 0:00.09 rcuos/0
10 root 20 0 0 0 0 S 0,0 0,0 0:00.00 rcuob/0
11 root rt 0 0 0 0 S 0,0 0,0 0:00.00 migration/0
12 root rt 0 0 0 0 S 0,0 0,0 0:00.00 watchdog/0
13 root rt 0 0 0 0 S 0,0 0,0 0:00.00 watchdog/1
14 root rt 0 0 0 0 S 0,0 0,0 0:00.00 migration/1
15 root 20 0 0 0 0 S 0,0 0,0 0:00.00 ksoftirqd/1
16 root 20 0 0 0 0 S 0,0 0,0 0:00.04 kworker/1:0
17 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kworker/1:+
rinzwind@schijfwereld:~$
q
dohtop
zamykany natychmiast.