#!/bin/bash
dd if=/dev/zero of=~/pub bs=1M count=50
rm -rvf fol fol1
mkdir fol fol1
for i in $(seq 50)
do
cp -rvf pub fol/test$i
done
copy()
{
ls fol/ | grep -v gz$ | paste - | while read a
do
sleep 10
gzip fol/$a
sleep 1
mv -v fol/$a.gz fol1/
sleep 1
break
done
}
thread()
{
if [ `ps aux | grep $0 | grep -v grep | wc -l` -le 17 ]
then
$1 &
sleep 1
fi
}
while [ `ls fol/ | paste - | wc -l` -gt 0 ]
do
thread copy &
sleep 1
done
To check multi thread :
watch -n 0 "ps aux | grep start | grep -v grep "
dd if=/dev/zero of=~/pub bs=1M count=50
rm -rvf fol fol1
mkdir fol fol1
for i in $(seq 50)
do
cp -rvf pub fol/test$i
done
copy()
{
ls fol/ | grep -v gz$ | paste - | while read a
do
sleep 10
gzip fol/$a
sleep 1
mv -v fol/$a.gz fol1/
sleep 1
break
done
}
thread()
{
if [ `ps aux | grep $0 | grep -v grep | wc -l` -le 17 ]
then
$1 &
sleep 1
fi
}
while [ `ls fol/ | paste - | wc -l` -gt 0 ]
do
thread copy &
sleep 1
done
To check multi thread :
watch -n 0 "ps aux | grep start | grep -v grep "
To ckeck the multithread use
ReplyDeletewatch -n 0 "ps aux | grep start | grep -v grep"