Skip to main content

Useful utility to easily run a command in parallel and understand any failures that may have occurred

Project description

multido provides a simple command line utility for easily running a shell command multiple times in parallel. One of the most useful examples generally works like this:

$ multido "ssh %s uptime" host1 host2 host3
host1: 22:02:28 up 5 days,  2:52,  0 users,  load average: 0.05, 0.04, 0.05
host2: 22:02:27 up 5 days, 24 min,  0 users,  load average: 0.05, 0.03, 0.05
host3: 22:02:28 up 6 days, 48 min,  0 users,  load average: 0.01, 0.02, 0.05

Unlike say, xargs -P, multido will not just give up if there is a problem with one of the commands, instead it will output the STDERR to STDERR with the RC prepended to each line:

$ multido "ls /etc/%s" passwd missing sudoers
passwd: /etc/passwd
missing: RC1: ls: /etc/missing: No such file or directory
sudoers: /etc/sudoers

multido also accepts stdin from a pipe too, making for easy to chain commands:

$ echo -e "host1\nhost2\nhost3" | multido "ssh %s date"
host1: Mon Sep 17 22:08:40 UTC 2012
host2: Mon Sep 17 22:08:40 UTC 2012
host3: Mon Sep 17 22:08:40 UTC 2012

If you have a preferred grouping you would like the commands to be executed in there is a syntax to support grouping:

$ multido "echo %s; sleep 1" [ 'b1a' 'b1b' ] [ 'b2' ] [ 'b3a' 'b3b' 'b3c' ]
b1a: b1a
b1b: b1b
b2: b2
b3a: b3a
b3b: b3b
b3c: b3c

Or if you just want to limit to batches of N at a time there is syntax available to achieve that:

$ N=2; multido -P$N "echo %s; sleep 1" a b c
a: a
b: b
c: c

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

multido-0.1.0.tar.gz (3.4 kB view details)

Uploaded Source

File details

Details for the file multido-0.1.0.tar.gz.

File metadata

  • Download URL: multido-0.1.0.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for multido-0.1.0.tar.gz
Algorithm Hash digest
SHA256 aaf03aeaaa074f5512eb8c0dea5f3e9e1d2d68f5a5f4f6f19ac95786413d7e3c
MD5 4031d8c6aeeac90177495ff2a3e07dc7
BLAKE2b-256 802244e7b7002ab7d7bf3e88f58f8469edfbe8d6c6e3be65a70831b85049bb23

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page