Command for checking the background jobs which are in running state
jobs -r | wc -l
Non-interactive ftp transfer to automate uploading of files parallely on different platforms.
#!/bin/bash
LINUX=linux
AIX=aix
SUNOS=sunos
WIN32=win
MACHINES=" \
$LINUX \
$AIX \
$SUNOS \
$WIN32"
function checkjobs(){
if [ `jobs -r | wc -l` -eq 0 ]; then
echo "All Background Process completed Successfully"
return 0
fi
sleep 10
checkjobs
}
function upload(){
if [ $# -eq 0 ]; then
echo "Missing Argument"
exit 1
fi
# Non-interactive ftp transfer
ftp -i -v -n hostname <<END_FTP
user root root
binary
cd test
put "file$1.exe"
bye
END_FTP
echo "Uploaded file$1.exe"
return 0
}
function uploadfile(){
echo "Uploading Files Started"
for host in $MACHINES
do
echo "Uploading FILES on host $host"
upload $host &
done
}
uploadfile
checkjobs
echo "All Files Uploaded Successfully"
Making things more simpler, we can use the special command wait and rewrite uploadfile so that we need not check for the background processes
function uploadfile(){
echo "Uploading Files Started"
for host in $MACHINES
do
echo "Uploading FILES on host $host"
upload $host &
done
wait
}
uploadfile
echo "All Files Uploaded Successfully"
Read more ...