Is there a way to remote tail 2 files?
I have two servers(a and b) behind a load balancer and I would like to do something like this if possible:
tail -f admin@serverA:~/mylogs/log admin@serverB:~/mylogs/log
Thanks!
Is there a way to remote tail 2 files?
I have two servers(a and b) behind a load balancer and I would like to do something like this if possible:
tail -f admin@serverA:~/mylogs/log admin@serverB:~/mylogs/log
Thanks!
My preferred option is to go with multitail. I'd run something like:
multitail -l 'ssh user@host1 "tail -f /some/log/file"' -l 'ssh user@host2 "tail -f /some/log/file"'
This worked for me:
ssh -n user@hostname1 'tail -f /mylogs/log' &
ssh -n user@hostname2 'tail -f /mylogs/log' &
I was thinking it might also be possible to use:
ssh -f user@hostname1 "tail -f /var/log/file" > /tmp/somefile &
ssh -f user@hostname2 "tail -f /var/log/file" > /tmp/somefile &
The -f option after ssh allows you to enter a password before it runs in the background. Then you could have the line-by-line results in a single file and running:
tail -f /tmp/somefile
Would give you a little more control over the current "tail" command in case you wanted to use other tail options for displaying output.
Parallel ssh has a nice solution for this:
pssh -t0 -H 'host-01 host-02 host-03 host-04' -P tail -f /var/log/app.log
-t0
disables the connection timeout, otherwise pssh closed the connection-H '<host>...'
is the list of hosts to run the command-P
is to enable printing the stdout of each hosttail -f /var/log/app.log
can be any command that your remote shell can runJust a weird solution, but it works!:
Screen 1
ssh user@hostname1 "tail -f /var/log/file" > /dev/pts/6
Screen 2
ssh user@hostname2 "tail -f /var/log/file" > /dev/pts/6
You can checkout dbitail.
A Java tool I created, able to read local and distant log files using SSH. It is fairly simple to use.
Some more explanations: https://github.com/pschweitz/DBITail/wiki
Just download version corresponding to your operating system, of native jar release executable within your Java Runtime (requires java 8_40 or higher):
https://github.com/pschweitz/DBITail/releases
You can find a complete documentation (embedded with and I Github's page as well)
Philippe
or you can use screen to create two terminals and then split them.
SSH into the first host you want to tail the log file of and before running tail, enter screen.
Then tail the file on this host.
CTRL+A, c will create a new screen or window. From this new window ssh into the 2nd host and tail the file there.
Now to create the split screen
CTRL+A, SHIFT+S, this will create a split screen with current shell in the top part and the bottom part empty. To switch to the bottom part and put the first screen within it,
CTRL+A, TAB, this will move you to the bottom part. Now to bring your first SSH session into this area:
CTRL+A, " (quote symbol) and select the first session and hit enter.
I realize this may look like a lot of gymnastics, and it is, but you do get use to it once you use it a few times.
Here is a really good tutorial or quick reference to screen's commands: http://www.pixelbeat.org/lkdb/screen.html
Additionally, you can create a .screenrc file so that much of what I described can be automated the first time you enter screen.
Another nice thing about this is that you can just close your session and resume it some place else. For example, you're at work and you have some monitoring going on. You can just close your session without logging out, and resume when you get home or to another location.