web-dev-qa-db-fra.com

Tail plusieurs fichiers distants

Existe-t-il un moyen de télécharger à distance les fichiers de queue 2?

J'ai deux serveurs (a et b) derrière un équilibreur de charge et je voudrais faire quelque chose comme ça si possible:

tail -f admin@serverA:~/mylogs/log admin@serverB:~/mylogs/log

Merci!

43
Pablo Fernandez

Cela a fonctionné pour moi:

ssh -n user@hostname1 'tail -f /mylogs/log' &
ssh -n user@hostname2 'tail -f /mylogs/log' &
31
einstiien

Mon option préférée est d'aller avec le multitail. Je lancerais quelque chose comme:

multitail -l 'ssh user@Host1 "tail -f /some/log/file"' -l 'ssh user@Host2 "tail -f /some/log/file"'
34
milosgajdos

Vous pouvez utiliser fabric pour suivre plusieurs hôtes (et également les résultats de grep, si nécessaire):

$ fab -P -u 'USER' -p 'PASSWORD' --linewise -H Host1,Host2,Host3 -- tail -f /path/to/my/log.log | grep ERROR
8
jbochi

Découvrez cette réponse sur stackoverflow - il utilise dsh et tail -f.

6
mrm

Je pensais qu'il pourrait également être possible d'utiliser:

ssh -f user@hostname1 "tail -f /var/log/file" > /tmp/somefile &
ssh -f user@hostname2 "tail -f /var/log/file" > /tmp/somefile &

L'option -f après ssh vous permet de saisir un mot de passe avant de l'exécuter en arrière-plan. Ensuite, vous pouvez avoir les résultats ligne par ligne dans un seul fichier et exécuter:

tail -f /tmp/somefile

Vous donnerait un peu plus de contrôle sur la commande "tail" actuelle au cas où vous voudriez utiliser d'autres options de queue pour afficher la sortie.

6
bjcullinan

Jetez un oeil à multitail . Tout comme les exemples ci-dessus, vous pouvez la donner en tant que commande à ssh, puis vous vous retrouverez avec un écran affichant (et mettant en mémoire tampon pour les défilements faciles) plusieurs journaux. Il fait également de la coloration, ce qui est très utile pour repérer les anomalies.

5
Marcin

Parallel ssh a une belle solution pour cela:

pssh -t0 -H 'Host-01 Host-02 Host-03 Host-04' -P tail -f /var/log/app.log
  • -t0 désactive le délai de connexion, sinon pssh a fermé la connexion
  • -H '<Host>...' est la liste des hôtes pour exécuter la commande
  • -P permet d'activer l'impression de la sortie standard de chaque hôte
  • tail -f /var/log/app.log peut être n'importe quelle commande que votre shell distant peut exécuter
2
Augusto Hack

Vous pouvez commander dbitail.

A Java outil que j'ai créé, capable de lire des fichiers journaux locaux et distants en utilisant SSH. Il est assez simple à utiliser.

Quelques explications supplémentaires: https://github.com/pschweitz/DBITail/wiki

Téléchargez simplement la version correspondant à votre système d'exploitation, de la version native du pot exécutable dans votre Java Runtime (nécessite Java 8_40 ou supérieur):

https://github.com/pschweitz/DBITail/releases

Vous pouvez trouver une documentation complète (intégrée à la page I et Github également)

Philippe

1

Que diriez-vous de quelque chose comme ça? http://Gist.github.com/303175

1
Messa

Juste une solution bizarre, mais ça marche!:

Écran 1

ssh user@hostname1 "tail -f /var/log/file" > /dev/pts/6

Écran 2

ssh user@hostname2 "tail -f /var/log/file" > /dev/pts/6
1
Mel

ou vous pouvez utiliser l'écran pour créer deux terminaux, puis les diviser.

Connectez-vous à SSH dans le premier hôte dont vous souhaitez copier le fichier journal et avant d'exécuter tail, accédez à l'écran.

Ensuite, limitez le fichier sur cet hôte.

CTRL + A, c créera un nouvel écran ou une nouvelle fenêtre. À partir de cette nouvelle fenêtre ssh dans le 2ème hôte et suivez le fichier là-bas.

Maintenant, pour créer l'écran partagé

CTRL + A, SHIFT + S, cela créera un écran divisé avec le shell actuel dans la partie supérieure et la partie inférieure vide. Pour passer à la partie inférieure et y placer le premier écran,

CTRL + A, TAB, cela vous amènera à la partie inférieure. Maintenant, pour amener votre première session SSH dans ce domaine:

CTRL + A, "(symbole de citation) et sélectionnez la première session et appuyez sur Entrée.

Je me rends compte que cela peut ressembler à beaucoup de gymnastique, et ça l'est, mais vous vous y habituez une fois que vous l'utilisez plusieurs fois.

Voici un très bon tutoriel ou une référence rapide aux commandes de l'écran: http://www.pixelbeat.org/lkdb/screen.html

De plus, vous pouvez créer un fichier .screenrc afin qu'une grande partie de ce que j'ai décrit puisse être automatisée la première fois que vous accédez à l'écran.

Une autre bonne chose à ce sujet est que vous pouvez simplement fermer votre session et la reprendre ailleurs. Par exemple, vous êtes au travail et vous avez une surveillance en cours. Vous pouvez simplement fermer votre session sans vous déconnecter et reprendre lorsque vous rentrez chez vous ou dans un autre endroit.

0
Kilo

Vous pouvez Tail des fichiers à distance en utilisant bash et rsync, je l'utilise et c'est un excellent script bash jetez un oeil au tutoriel suivant

fichiers Tail à distance en utilisant bash et rsync

0
user1381775