web-dev-qa-db-fra.com

sortie htop vers un fichier lisible par l'homme

J'ai essayé de canaliser htop vers un fichier texte (par exemple htop > text.txt) mais cela me donne du texte tronqué en formatant des chaînes (voir ci-dessous). Existe-t-il un moyen d'obtenir une sortie plus agréable et lisible par l'homme?

^[7^[[?47h^[[1;30r^[[m^[[4l^[[?1h^[=^[[m^[[?1000h^[[m^[[m^[[H^[[2J^[[1B  ^[[36m1  ^[[m^[[1m[^[[m^[[32m||||||||||^[[31m||||||||||^[[30m^[[1m                                                            \
     22.2%^[[m]^[[m     ^[[36mTasks: ^[[1m159^[[m^[[36m total, ^[[32m^[[1m5^[[m^[[36m running^[[3;3H2  ^[[m^[[1m[^[[30m                                                                                \
      0.0%^[[m]^[[m     ^[[36mLoad average: ^[[30m^[[1m1.11 ^[[m^[[m1.28 ^[[1m1.31 ^[[4;3H^[[m^[[36m3  ^[[m^[[1m[^[[m^[[32m||||||||||^[[30m^[[1m                                                       \
                    11.1%^[[m]^[[m     ^[[36mUptime: ^[[1m9 days, 22:04:51^[[5;3H^[[m^[[36m4  ^[[m^[[1m[^[[30m                                                                                      0.0\
%^[[m]^[[6;3H^[[m^[[36m5  ^[[m^[[1m[^[[m^[[31m||||||||||^[[30m^[[1m                                                                           11.1%^[[m]^[[7;3H^[[m^[[36m6  ^[[m^[[1m[^[[30m           \
25
DilithiumMatrix

auteur htop ici.

Non, il n'y a pas de méthode "sympa" pour obtenir la sortie de htop dans un fichier. Il s'agit d'une application interactive qui utilise des routines de redessinage de terminal pour produire son interface (par conséquent, la canaliser a autant de sens que, par exemple, canaliser vim dans un fichier texte - vous obtiendrez des résultats similaires).

Pour obtenir les informations sur vos processus au format texte, utilisez "ps". Par exemple, ps auxf > file.txt vous donne beaucoup d'informations faciles à analyser (ou ps aux si vous ne souhaitez pas la mise en forme d'arborescence - voir man ps pour plus d'options).

54
Hisham H M

sorties htop code d'échappement ANSI pour utiliser les couleurs et déplacer le curseur sur le terminal. Il existe un excellent programme en ligne de commande aha qui peut être utilisé pour convertir ANSI en HTML.

Installation d'Ubuntu/Debian

apt-get install aha

Enregistrer la sortie htop en tant que fichier HTML

echo q | htop | aha --black --line-fix > htop.html
21
Marwan Alsabbagh

J'ai eu le même besoin et j'ai fini par utiliser top au lieu de htop a fournit un mode batch via le -b drapeau.

-b: fonctionnement en mode batch Démarre top en "mode batch", ce qui peut être utile pour envoyer la sortie de top vers d'autres programmes ou vers un fichier. Dans ce mode, top n'acceptera pas d'entrée et s'exécute jusqu'à ce que la limite d'itérations que vous avez définie avec l'option de ligne de commande "-n" ou jusqu'à ce qu'il soit tué.

Ainsi, par exemple:

top -b -n 1

J'espère que cela vous aidera même si vous n'utilisez pas htop.

11
Szymon Jeż

Cette commande génère du texte brut. (Il nécessite l'installation de aha et html2text.)

echo q | htop -C | aha --line-fix | html2text -width 999 | 
grep -v "F1Help\|xml version=" > file.txt
7
k0fe

Installez d'abord recode, puis encodez-le en utf-8:

$htop | recode utf-8 > test.txt

Ensuite, cat le fichier et vous devriez être bon.

1
Ian

Vous pouvez également utiliser un script avant d'exécuter htop dans un mode qui redirige les timings vers un fichier pour une lecture ultérieure. Dans le domaine de "encore un autre travail autour" et "bon pour montrer et raconter".

script -t -a /var/tmp/script.htop.out 2> /var/tmp/script.htop.out.timings
htop 

Puis à la lecture

scriptreplay /var/tmp/script.htop.out.timings /var/tmp/script.htop.out
1
LoneWolf