If you do things like this, or parallel-ssh, or 'input from one terminal gets rebroadcast to N other terminals that you're running ssh in' - make no mistake - you are doing it _WRONGEST_ out of all possible wrong ways of controlling, managing or monitoring systems.
If you're trying to monitor a bunch of machines, the answer is not to display as many machines as possible on one screen. You are not a security guard paid to patrol an empty warehouse. Aggregate your logs, put them in a database. Got money? Use Splunk. Don't got money? Use Kubuto.
Trying to capture metrics? Graphite
If you're trying to administrate a bunch of machines, parallel-ssh or any of the live single-input->multi-output terminal solutions there are is the equivalent of throwing excrement at the computers. Learn Puppet, Chef, salt, fabric or one of the other 9 trillion other solutions that are more reliable than a human mashing their giant inept sausage fingers against a keyboard.
Not too hard to throw something together. I wrote a script several years ago to do something similar and even does basic sharding: https://gist.github.com/anonymous/281504
Pretty neat. In my opinion if you've got several EC2 instances that have similar roles and you're looking to manage them in parallel, you should already be using a configuration management tool like Chef, and most of those tools have this sort of thing built in.
For example, in addition to managing instances with Chef cookbooks, you can run arbitrary commands in parallel on any subset of your instances with:
$ knife ssh SEARCH_QUERY interactive
This has been a lifesaver for me on several occasions.
Well for example if you have a bunch of web servers and you are looking for server errors and you do
# tail -f access|grep \ 500\
on all the instances.
You can then do a regex match on 500 in the app and it will sort the terminal windows that have the most matches to the top. That way you can determine what instances are failing.
I don't think parallel-ssh, cssh, tmux do that.
and it's web-based too.. Which just makes it different, not better!
I'm currently building something for more general use. An app to automate commonly executed tasks on different server environments. Its open source too http://eyjafjallajokull.github.io/gunnery/
I don't see why it wouldn't. I guess it would have to use the private DNS though. Currently it uses the public DNS for the instance to connect. It will only use the private DNS if the public doesn't exist. Should be an easy change to make it configurable so you can set it to always use the private.
If you're trying to monitor a bunch of machines, the answer is not to display as many machines as possible on one screen. You are not a security guard paid to patrol an empty warehouse. Aggregate your logs, put them in a database. Got money? Use Splunk. Don't got money? Use Kubuto.
Trying to capture metrics? Graphite
If you're trying to administrate a bunch of machines, parallel-ssh or any of the live single-input->multi-output terminal solutions there are is the equivalent of throwing excrement at the computers. Learn Puppet, Chef, salt, fabric or one of the other 9 trillion other solutions that are more reliable than a human mashing their giant inept sausage fingers against a keyboard.