Jak zapisać wynik htopa do pliku?

14

Jak mogę zapisać dane wyjściowe w htoppliku? Dzięki topmogę biegać

top -b -n1 > top.txt

gdzie -bokreśla tryb wsadowy i -nokreśla liczbę iteracji.

Ale manstrona htopnie oferuje takiej możliwości.

Czy zrobienie zrzutu ekranu jest jedynym sposobem?

DK Bose
źródło

Odpowiedzi:

18

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 ahaz 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
DK Bose
źródło
3
Dla tych, zastanawiając się: Rurociągi qdo htopzamykany natychmiast.
BallpointBen
6

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ład ps auxf > file.txtdaje wiele łatwych do przeanalizowania informacji (lub ps aux, jeśli nie chcesz formatować drzewa - więcej informacji znajdziesz w man ps).

Ron
źródło
5

Wypróbuj to polecenie; robi to, co chcesz. Musisz tylko zainstalować ahai html2textnajpierw.

echo q | htop -C | aha --line-fix | html2text -width 999 | grep -v "F1Help" | grep -v "xml version=" > file.txt
k0fe
źródło
1

1. zapisz dane wyjściowe terminala w pliku

echo | htop  > /tmp/htop.out

//htop.out ma terminal save/load console_sequence

2. pokaż wyjście w terminalu

head -c -10 /tmp/htop.out  | tail -c +10

// po prostu użyj paska głowy i ogona screen reset console_sequence
// 10bajty były z grubsza

Yurenchen
źródło
0

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:~$ 
Rinzwind
źródło