{ "info": { "author": "Chris Brinker", "author_email": "chris.brinker@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "=======\r\nmultido\r\n=======\r\n\r\nmultido provides a simple command line utility for easily running \r\na shell command multiple times in parallel. One of the most useful \r\nexamples generally works like this:: \r\n\r\n $ multido \"ssh %s uptime\" host1 host2 host3\r\n host1: 22:02:28 up 5 days, 2:52, 0 users, load average: 0.05, 0.04, 0.05\r\n host2: 22:02:27 up 5 days, 24 min, 0 users, load average: 0.05, 0.03, 0.05\r\n host3: 22:02:28 up 6 days, 48 min, 0 users, load average: 0.01, 0.02, 0.05\r\n\r\nUnlike say, xargs -P, multido will not just give up if there is a problem\r\nwith one of the commands, instead it will output the STDERR to STDERR with the \r\nRC prepended to each line::\r\n\r\n $ multido \"ls /etc/%s\" passwd missing sudoers\r\n passwd: /etc/passwd\r\n missing: RC1: ls: /etc/missing: No such file or directory\r\n sudoers: /etc/sudoers\r\n\r\nmultido also accepts stdin from a pipe too, making for easy to chain\r\ncommands::\r\n\r\n $ echo -e \"host1\\nhost2\\nhost3\" | multido \"ssh %s date\"\r\n host1: Mon Sep 17 22:08:40 UTC 2012\r\n host2: Mon Sep 17 22:08:40 UTC 2012\r\n host3: Mon Sep 17 22:08:40 UTC 2012\r\n\r\nIf you have a preferred grouping you would like the commands to be executed in\r\nthere is a syntax to support grouping::\r\n\r\n $ multido \"echo %s; sleep 1\" [ 'b1a' 'b1b' ] [ 'b2' ] [ 'b3a' 'b3b' 'b3c' ] \r\n b1a: b1a\r\n b1b: b1b\r\n b2: b2\r\n b3a: b3a\r\n b3b: b3b\r\n b3c: b3c\r\n\r\nOr if you just want to limit to batches of N at a time there is syntax \r\navailable to achieve that::\r\n\r\n $ N=2; multido -P$N \"echo %s; sleep 1\" a b c\r\n a: a\r\n b: b\r\n c: c", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cbrinker/multido", "keywords": "", "license": "LICENSE.txt", "maintainer": "", "maintainer_email": "", "name": "multido", "package_url": "https://pypi.org/project/multido/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/multido/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/cbrinker/multido" }, "release_url": "https://pypi.org/project/multido/0.1.0/", "requires_dist": null, "requires_python": null, "summary": "Useful utility to easily run a command in parallel and understand any failures that may have occurred", "version": "0.1.0" }, "last_serial": 795084, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "4031d8c6aeeac90177495ff2a3e07dc7", "sha256": "aaf03aeaaa074f5512eb8c0dea5f3e9e1d2d68f5a5f4f6f19ac95786413d7e3c" }, "downloads": -1, "filename": "multido-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4031d8c6aeeac90177495ff2a3e07dc7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3371, "upload_time": "2012-09-17T22:19:06", "url": "https://files.pythonhosted.org/packages/80/22/44e7b7002ab7d7bf3e88f58f8469edfbe8d6c6e3be65a70831b85049bb23/multido-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4031d8c6aeeac90177495ff2a3e07dc7", "sha256": "aaf03aeaaa074f5512eb8c0dea5f3e9e1d2d68f5a5f4f6f19ac95786413d7e3c" }, "downloads": -1, "filename": "multido-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4031d8c6aeeac90177495ff2a3e07dc7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3371, "upload_time": "2012-09-17T22:19:06", "url": "https://files.pythonhosted.org/packages/80/22/44e7b7002ab7d7bf3e88f58f8469edfbe8d6c6e3be65a70831b85049bb23/multido-0.1.0.tar.gz" } ] }