aboutsummaryrefslogtreecommitdiffstats
path: root/pars.sh
diff options
context:
space:
mode:
authorJames Pannacciulli <jpnc@jpnc.info>2015-01-23 09:40:18 -0800
committerJames Pannacciulli <jpnc@jpnc.info>2015-01-23 09:40:18 -0800
commita3199903b64115b9d83493b46ea2a0a1ca6c18db (patch)
treeeb117b5e34aae4af5b8095c7002b22597ea71baa /pars.sh
downloadparssh-a3199903b64115b9d83493b46ea2a0a1ca6c18db.tar.gz
parssh-a3199903b64115b9d83493b46ea2a0a1ca6c18db.tar.bz2
parssh - parallel ssh exec w/ custom concurrency - first commit
Diffstat (limited to 'pars.sh')
-rw-r--r--pars.sh15
1 files changed, 15 insertions, 0 deletions
diff --git a/pars.sh b/pars.sh
new file mode 100644
index 0000000..345e511
--- /dev/null
+++ b/pars.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+parssh ()
+{
+ [[ "$1" == -[0-9]* && "$1" != *[^0-9-]* ]] && {
+ parssh_concurrency=${1#-}
+ shift
+ }
+ while read host; do
+ while (( $(jobs -pr | wc -l) >= ${parssh_concurrency:-4} )); do
+ sleep 1;
+ done;
+ ssh -no StrictHostKeyChecking=no $host "$@" &
+ done
+}