blob: 4e3544ed760d0c31a5a3f606c9e0e39cd677e11e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#!/bin/bash
parssh () {
while [[ "$1" == -* ]]; do
case ${1#-} in
[0-9]*)
[[ "${1#-}" != *[^0-9]* ]] && {
local parssh_concurrency=${1#-}
shift
}
;;
fo|fouter)
[[ -f "$2" ]] || {
echo "'$2': invalid file name"
return 99
}
local parssh_fouter="$2"
shift
shift
;;
esac
done
[[ -z "$parssh_fouter" ]] && {
exec 9<&0
} || {
echo "reading $parssh_fouter"
exec 9<"$parssh_fouter"
}
while read host; do
while (( $(jobs -pr | wc -l) >= ${parssh_concurrency:-4} )); do
sleep 1;
done;
ssh -no StrictHostKeyChecking=no $host "$@" &
done <&9
exec 9>&-
}
|