vxargs: running arbitrary command with explicit parallelism, visualization and redirection

provided by Yun Mao, University of Pennsylvania in LGPL License


vxargs is inspired by xargs and pssh. It provides the parallel versions of any arbitrary command, including ssh, rsync, scp, wget, curl, and whatever. One reason to use it is to control a large set of machines in the wide-area network. For example, I use vxargs on PlanetLab to control hundreds of machines spreading around the globe when I'm working on DHARMA project.

The main features are:



In vxargs 0.4, multiple arguments will be supported. Send email to me to obtain the latest development version. Thanks to Guohan Lu for the patch.

RPM package of vxargs maintained by Andras Horvath

vxargs link on freshmeat


To install vxargs, simply download the latest vxargs python script, rename it to your favorite name (e.g. vxargs), make sure it has the executable permission (e.g. chmod +x /home/username/bin/vxargs) and its dir is in your PATH. Of course, make sure you have Python 2.2 or above installed.

Read the man page or type vxargs --help for the detailed usage. Here I'll show several examples to explain how it works. Suppose the iplist.txt file has following content:

$ cat iplist.txt
The IP addresses will be used as dynamic arguments for the following examples. The hostnames preceded by '#' is a comment for previous IP address, which will be used for eye candy purpose only and can be omitted.

Known Bugs


Send me email if you encounter problems, find bugs, or have any random comments: maoy AT cis.upenn.edu

Last Modified: $Id: index.html,v 1.27 2005/07/27 21:04:02 maoy Exp $