J'utilise
ssh user@Host top
pour afficher le top
sortie de "Host", je reçois
TERM environment variable not set.
Quelle est la solution?
Comment puis-je exécuter top
sur "Host" comme ça et voir la sortie?
top
affiche sa sortie sur un périphérique terminal, et non sur un flux standard (par exemple, STDOUT/STDERR). Comme il n'y a pas de terminal impliqué dans l'hôte distant lorsque vous effectuez:
ssh user@Host top
cela donne l'erreur à propos de la variable d'environnement TERM
non définie.
Vous devez affecter un pseudo TTY sur l'hôte distant à l'aide de l'option -t
de ssh
:
ssh -t user@Host 'top'
Vous pouvez maintenant envoyer les clés à top
de la manière habituelle, par exemple. q quitter, h pour obtenir de l'aide, etc.
Cette même solution s’applique à tous les programmes qui nécessitent un TTY pour afficher les résultats.
Par souci d'exhaustivité, vous pouvez affecter un pseudo TTY même s'il n'y a pas de TTY local impliqué, en utilisant plusieurs -t
s par exemple:
ssh -tt user@Host 'top'
Je vous recommande de procéder comme suit si vous souhaitez le voir sur votre hôte local:
ssh user@server -t "top"
ou mieux encore ssh user@server -t "top -n1"
pour que vous puissiez avoir une idée de l'état des ressources à ce moment-là.
Vous pouvez même l’améliorer pour le capturer sur un fichier de cette façon:
ssh user@server -t "top -n1 -b" > topOutputFile