বি তে কী আছে সে সম্পর্কে তথ্য ক্যাপচার করা, এগুলি সমস্ত এ-তে পৌঁছেছে তা নিশ্চিত করা বা আপনি সেগুলি না পাওয়া পর্যন্ত পুনরায় রিটায়িং করা আরও সাধারণ জেনারেল পন্থা।
কিছুটা এইরকম
until ${allFilesTransfered:-false} ; do
# get in file list of remote Files
ftp -in > ${mgetTargets} <<-EOS
open ${RemoteHost}
$passwd
cd $remoteDir
ls ${fileSpec}*
quit
EOS
# transport files with mget
ftp -in <<-EOS
open ${RemoteHost}
$passwd
prompt
binary
cd $remoteDir
lcd $localDir
mget $( cat mgetTargets )
quit
EOS
# make a tmp file with files that are
# now on your local machine
cd $localDir
ls -l > ${localDirOutput)
# compare the 2 lists with diff,
# if not diffs, then all files were copied
diffOut="$(diff - ${localDirOutput} ${mgetTargets})"
case "${diffOut:-no_outputFound}" in
no_outputFound ) allFilesTransfered=true ;;
esac
done
যেখানে mgetTargets এবং লোকাডিরআউটপুট ফাইলগুলিতে নির্দেশ করতে সংজ্ঞায়িত করা হবে।
এই সঠিক করার জন্য আমার কাছে সত্যিকারের সংস্থান বা সময় নেই তবে আশা করি আপনি ধারণাটি পেয়ে যাবেন।