I have recently discovered multi-gnome-terminal, and I have a
"perfect" use for it, but I'm running into some issues. I'm hoping
somebody can set me straight with it.
I have a distributed I/O software package that has multiple components,
each of which generates log files. I needed a way to automate the task
of getting tails on all the logs, in a developer-friendly way, so that
the logs can be monitored and searched. I have written a perl script
that reads my config files and starts a multi-tabbed
multi-gnome-terminal with tails on all the appropriate log files.
My script will fork one or more commands such as this:
multi-gnome-terminal --geometry 180x44 --termname zot -A \
-Tc "less +F /var/log/foo.log" -n "foo.log" \
-Tc "less +F /var/log/bar.log" -n "bar.log"
(less +F runs less in "tail mode, but the file is still searchable)
This works, but I'm often looking at logs on another node on the
network, sometimes remote via ssh or ssh+vpn. If I run the "MGT"
remotely, with the X display local, it is too slow to use, presumably
because of the long screen-painting latency.
So I added an "rcmd" option to my script, such that the MGT is run
locally, with the tail commands executed remotely, and I get this:
multi-gnome-terminal --geometry 180x44 --termname zot -A \
-Tc "ssh bling less +F /var/log/foo.log" -n "foo.log" \
-Tc "ssh bling less +F /var/log/bar.log" -n "bar.log"
Here I run into problems. With a tab commands like these, less does
not work properly -- it attempts to scroll all the way from beginning
to end of the log (a deal killer, because the logs grow quite large).
I'm guessing that less cannot determine the terminal type, and defaults
to this behavior.
If I substitute "tail -f" for "less +F", it works perfectly, but my log
tabs are not searchable. Can anybody help me with any of the following:
- How to get less working properly in a remote executed MGT tab?
- Some other way to get a searchable tail running in a remote
executed MGT tab?
Thanks,
John Groves