#!/bin/bash
if [ $# -lt 2 ]
then
echo "bash $0 task_script hostlist [thread_num] [parameters]"
exit
fi
function logit
{
echo "[`date +%F-%T`] $@"
}
mkfifo ff
exec 4<>ff
unlink ff
task=$1
list=$2
thread=$3
if [ "$thread" == "" ]
then
thread=5
fi
if [ $thread -ge 2000 ]
then
thread=2
fi
rm -rf log
mkdir log
>./donelist
for((i=0;i<$thread;i++))
{
echo >&4;
}
cat $list | while read i j
do
logit "starting $task $i:$file $para"
(bash $task $i $j &>log/$i; echo $i >>./donelist;echo >&4) &
read <&4
done