The sys admin's daily grind: parallel SSH

Mass Start


Parallel SSH is the name of an easy-to-configure tool that our resident sys admin, Charly, now routinely deploys whenever he needs to launch the same programs, copy the same files, or kill the same processes simultaneously on multiple computers.

By Charly Kühnast

I am writing from a Linux seminar in the Linuxhotel in Essen, Germany. The environment here comprises four Xen virtualized machines. Identical changes to all cluster nodes are a regular requirement, which is a pain, but I have a utility up my sleeve: parallel SSH [1]. Pssh relies on the SSH agent running, so I'll take care of that first:

ssh-agent
ssh-add

After I enter the pass phrase for my SSH key, the AAH agent ensures that nobody will ask me for it, at least not during the current session. Next, I need a text file in which I add the IP addresses of the servers for which I need to set up simultaneous connections, so I'll start by adding three addresses to server.txt:

192.168.5.12
192.168.5.52
192.168.5.67

First, I will open an SSH connection to these three computers, run the uname command on them, and redirect the output to my pssh-out directory with the command line:

pssh -h server.txt -l charly -o /home/charly/pssh-out uname

Now I have three files below /home/charly/pssh-out named after the server IP addresses. And lo and behold, the files contain the uname command output (Figure 1). Pssh is thus similar to the Distributed Shell (DSH).

Figure 1: Pssh launches the same example program, uname, on each machine with an entry in the server.txt list.

Two Hard-Hitting Tools

PSCP and PNuke, which are also part of the pssh package, work along the same principle.

PSCP copies files simultaneously to multiple target machines. This command adds a new message of the day to my servers:

pscp -h server.txt -l charly /etc/motd /etc/

PNuke sends a kill -9 to identically named processes on three servers

pnuke -l server.txt -l charly wget

and terminates any wget processes running on them. This frees up some bandwidth.

Conclusions

Brilliant. The most difficult thing about the pssh suite is saying its Internet page name, theether.org, without tripping over your own tongue.

INFO
[1] Parallel SSH: http://www.theether.org/pssh/
THE AUTHOR

Charly Kühnast is a Unix operating system administrator at the Data Center in Moers, Germany. His tasks include firewall and DMZ security and availability. He divides his leisure time into hot, wet, and eastern sectors, where he enjoys cooking, fresh water aquariums, and learning Japanese, respectively.