一个有用的实用程序,可以轻松地并行运行命令并理解可能发生的任何故障
multido的Python项目详细描述
multido提供了一个简单的命令行实用程序,可以方便地运行 并行执行多次shell命令。最有用的 示例通常如下:
$ 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
不像xargs-p,multido不会在出现问题时放弃 使用其中一个命令,它将用 每行前加rc:
$ multido "ls /etc/%s" passwd missing sudoers passwd: /etc/passwd missing: RC1: ls: /etc/missing: No such file or directory sudoers: /etc/sudoers
multido也接受来自管道的stdin,便于链式连接。 命令:
$ 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
如果有首选分组,则希望在 有一种语法支持分组:
$ multido "echo %s; sleep 1" [ 'b1a' 'b1b' ] [ 'b2' ] [ 'b3a' 'b3b' 'b3c' ] b1a: b1a b1b: b1b b2: b2 b3a: b3a b3b: b3b b3c: b3c
或者如果一次只想限制批处理n,则有语法 可用于实现此目标:
$ N=2; multido -P$N "echo %s; sleep 1" a b c a: a b: b c: c