Since I made the switch to a Mac in my day job, I’ve had two major frustrations. The first is the lack of Visio for OS X. The second one, was a little more major. I needed a replacement for MRemoteNG. I’ve searched for options and grown weary of reading the general post of “why would you need a specialized SSH tool, when it is built into the terminal of OS X?”
That statement is usually offered by a web developer who might have SSH connections to 3-5 servers on a daily basis. They live in a very specific world, and have a hard time understanding anything outside of that world. Feel bad for them; don’t hate them.
In the world of network engineers however, we may connect to 50 or more devices in a day, and may have logins to thousands of devices over an enterprise network. In that environment, there is a real need for the ability to bookmark devices.
After searching for options, I found one option that worked to some extent. This SSH workflow for Alfred is excellent. However, since I use a hosts file from someonewhocares.org to block a lot of advertisers and trackers, the index was never very useful.
After considering this problem from all angles, I finally had an “AH HA!” moment, and the simplicity of the solution made me equal parts giddy and disappointed that it took me so long to resolve. I created a file with a similar layout to a hosts file, in-fact I even named it hosts.txt. Each row of the file list a hostname, and an IP address. Since this file is purely text, you could add anything to each line that you wanted.
#site1
device1 10.0.1.1 description
device2 10.0.1.2 unique protocol info
device3 10.0.1.3 more information
device4 10.0.1.4
#site2
device1 10.0.2.1
device2 10.0.2.2
device3 10.0.2.3
device4 10.0.2.4
device5 10.0.2.5
#site3
device1 10.0.3.1
#site4
device1 10.0.4.1
device2 10.0.4.2
But how does this help us manage thousands of devices you ask? It doesn’t, but grep does. If we pass a search string to grep along with the file name, all matching hosts show up. Yes it is simple, but it is useful because of that!
In my file, I created a site heading by starting the line with an octothorpe. I use this so that I can search for sites. This looks like:
grep ^# hosts.txt
#site1
#site2
#site3
#site4
I can also search for all devices at a location using a statement like:
grep ^#site2 -A6 hosts.txt
#site2
device1 10.0.2.1
device2 10.0.2.2
device3 10.0.2.3
device4 10.0.2.4
device5 10.0.2.5
#site3
In this case, I am telling it to start at “#site2” and show the next 6 lines. Since the 6th line is the next site, I know that I am seeing all of the devices from site 2.
Finally, if I know part of the hostname, I can simply search on it, and it will display.
Hopefully this gives you a better way of managing huge networks from terminal.
One free tool that I have found that is simple and runs in the Mac toolbar is an app called Shuttle. Script based, menu based app that uses a common file for connections. Just like a host file you have to mod to get all your entries in, you have to set this file once and your done. Then via Mac toolbar you branch into the menu and select the host you want to connect to. http://fitztrev.github.io/shuttle/ . I tend to find myself using SecureCRT less and terminal.app more. Hope this helps.
I am too plagued by lack of Visio support….
SecureCRT has worked for me for the past 2 years. Create your list of devices and folder hierarchy and use the search feature. I’ve used OmniGraffle as my Visio alternative for the past couple years and, although it took a little time to get used to it, it works quite well. You can also import VSD and export VXD docs. There were some gaps and stability issues with it a couple years ago but it has come a long way in that time.