Queue plusieurs fichiers distants

41

Existe-t-il un moyen de supprimer les fichiers de la queue 2?

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

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

Merci!

Pablo Fernandez
la source
Pourquoi avez-vous effacé la réponse?
Pablo Fernandez
surtout parce que cela n'a pas fonctionné :-)
mat
@mat Oh, j'étais sur le point de l'essayer :). Merci quand même!
Pablo Fernandez
il ne fonctionne pas parce que le <(foo) construction attendra la commande intérieure de finition avant d' être remplacé par un tuyau dans la ligne de commande d' origine à partir de laquelle le logiciel sera capable de lire, et, la queue ne finirait jamais :-)
tapis

Réponses:

31

Cela a fonctionné pour moi:

ssh -n user@hostname1 'tail -f /mylogs/log' &
ssh -n user@hostname2 'tail -f /mylogs/log' &
einstiien
la source
Oui, c'est comme ça que je le fais, sauf que j'ai généralement plusieurs gnome-terminaux ouverts, chacun avec une session à l'intérieur
Tom O'Connor
1
Y a-t-il un moyen de faire cela sans ouvrir plusieurs sessions ssh indépendantes?
Tgies
8
Mais cela ne vous permet pas d’arrêter le tailing avec Ctrl+C.
sorin
@sorin pour terminer les processus, ramenez chacun au premier plan avec fg; alors vous pouvez le ctrl+cfaire. Vous le feriez une fois pour chaque queue en cours d'exécution. Ou vous pouvez pkill -f sshles cibler tous en même temps.
Dale Anderson
34

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

multitail -l 'ssh user@host1 "tail -f /some/log/file"' -l 'ssh user@host2 "tail -f /some/log/file"'
gyre
la source
1
Merci! Je cherchais un exemple d'utilisation de multitail sur ssh / sur des hôtes distants!
Noah Sussman
Multitail est une solution beaucoup plus robuste.
obfk
notre site Web contient plus de 10 nœuds Web et l'échec du multitail au premier essai d'erreur Operation not permitted, avec 2 3 nœuds Web, ça va
Hieu Vo
J'ai aussi le Operation not permitted, des indices?
Erik Aigner
7

Vous pouvez utiliser fabric pour configurer 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
Jbochi
la source
6

Je pensais qu'il serait également 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 pourriez avoir les résultats ligne par ligne dans un seul fichier et en cours d'exécution:

tail -f /tmp/somefile

Vous donnerait un peu plus de contrôle sur la commande "tail" en cours si vous souhaitez utiliser d'autres options de tail pour afficher les résultats.

bjcullinan
la source
5

Jetez un oeil à multitail . Comme dans les exemples ci-dessus, vous pouvez lui donner une commande pour ssh, puis vous obtiendrez un seul écran affichant (et mettant en mémoire tampon pour faciliter le défilement) plusieurs journaux. Il fait aussi de la coloration, ce qui est très utile pour détecter les anomalies.

Marcin
la source
2

Parallèlement, ssh a une solution intéressante à 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 ferme la connexion
  • -H '<host>...' est la liste des hôtes pour exécuter la commande
  • -P est 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
Augusto Hack
la source
1

Juste une solution étrange, 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

la source
cela fonctionnera en affichant les lignes sur le terminal / dev / pts / 6 (pour trouver votre propre terminal: exécutez: who am i et il vous le montrera.)
Olivier Dulac
1

Vous pouvez commander dbitail.

Un outil Java que j'ai créé, capable de lire des fichiers journaux locaux et distants à l'aide de SSH. C'est assez simple à utiliser.

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

Il suffit de télécharger la version correspondant à votre système d'exploitation, de l'exécutable de la version native de jar dans votre environnement d'exécution Java (requiert java 8_40 ou version ultérieure):

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

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

Philippe

Philippe Schweitzer
la source
0

ou vous pouvez utiliser screen pour créer deux terminaux, puis les scinder.

SSH dans le premier hôte dont vous souhaitez décompresser le fichier journal et avant de lancer tail, entrez screen.

Puis tracez 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 se connecte au deuxième hôte et place le fichier à l'intérieur.

Maintenant pour créer l'écran partagé

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

CTRL + A, TAB, cela vous mènera à la partie inférieure. Maintenant, apportez votre première session SSH dans cette zone:

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 c'est vrai, mais vous vous y habituer 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

En outre, vous pouvez créer un fichier .screenrc afin de pouvoir automatiser une grande partie de ce que j'ai décrit lors de votre première saisie à l'écran.

Une autre bonne chose à propos de cela 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 votre travail lorsque vous rentrez chez vous ou ailleurs.

Kilo
la source
0

Vous pouvez Tail des fichiers à distance en utilisant bash et rsync, je l’utilise et c’est un super script bash, consultez le tutoriel suivant

Queue fichiers à distance en utilisant bash et rsync

utilisateur1381775
la source
Le lien ne fonctionne pas
czerasz le