vxargs - visual parallel xargs

· jonyesno


Flag for vxargs, an xargs-a-like that runs its multiple command invocations in parallel and provides a (ncurses) histogram of the progress. Its companion program pattern provides an easy way to generate IP / hostnames based on a logical sequence. Together the make a reasonble way to run a command on a bunch of hosts and collate the stdout, stderr and exit status of each.

As a same-same-but-different alternative to

... it's proving pretty solid.

Example:

[admin@manage3 tmp]$ pattern.py foo[1-8] | vxargs -y -o ~/tmp ssh {} varnishadm -Tlocalhost:6082 ping

Terminal clears, and shows progress:

8/8:ssh -l root foo8 varnishadm -Tlocalhost:6082 ping
Done
Done
Done
Done
Done
( 10s)  6: foo7 
Done

and exits

exit code 0: 7 job(s)
exit code 1: 1 job(s)
total number of jobs: 8

Now you can inspect the output from each host, exit status and an overall failure list

[admin@manage3 tmp]$ cat ~/tmp/abnormal_list
foo5
[admin@manage3 tmp]$ cat ~/tmp/foo5.err 
Warning: Permanently added 'foo5,10.221.11.0' (RSA) to the list of known hosts.
connect(): Connection refused
An error occured in receiving status.

Via Trivium

last updated: