vxargs – visual parallel xargs
Friday, 09. 18. 2009 – Category: sw
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
- pssh
- That xterm multiplexer I can never remember the name of
- screen(1) and Terminal.app‘s send-to-many option
- Quick and dirty shell scripts iterating over a host list
- Capistrano‘s shell (even on hosts that don’t run any other Ruby!)
… 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
One Response to “vxargs – visual parallel xargs”
Leave a Reply
Recent articles
- Docker, SELinux, Consul, Registrator
(Wednesday, 04. 29. 2015 – No Comments) - ZFS performance on FreeBSD
(Tuesday, 09. 16. 2014 – No Comments) - Controlling Exim SMTP behaviour from Dovecot password data
(Wednesday, 09. 3. 2014 – No Comments) - Heartbleed OpenSSL vulnerability
(Tuesday, 04. 8. 2014 – No Comments)
Archives
- April 2015
- September 2014
- April 2014
- September 2013
- August 2013
- March 2013
- April 2012
- March 2012
- September 2011
- June 2011
- February 2011
- January 2011
- October 2010
- September 2010
- February 2010
- September 2009
- August 2009
- January 2009
- September 2008
- August 2008
- July 2008
- May 2008
- April 2008
- February 2008
- January 2008
- November 2007
- October 2007
- September 2007
- August 2007
- December 2006
- November 2006
- August 2006
- June 2006
- May 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
January 28th, 2010 at 8:17 am
A more general tool for running things in parallel is Parallel https://savannah.nongnu.org/projects/parallel/
seq 1 8 | parallel ssh foo{} varnishadm -Tlocalhost:6082 ping