以下代码...首先检测文件夹是否存在,如果存在,则将文件内部(如果超过12或12)复制到另一个文件夹。
在第一步......有一个循环......如果文件夹存在,程序有时会尝试(在这种情况下为10次),如果该文件夹存在。
如果文件夹存在,则等待12个文件...如果文件少于12个...程序,几秒钟后...重复控制...如果最后有12个文件或更多...程序将这些文件复制到第二个文件夹中。
我想分享代码...也许有更好的方法来做到这一点......更安全......更干净。感谢
#!/bin/bash
PARAM=`date +%Y%m%d`12
dir_origen=/home/Enric/Produccio/Grib/GFS0.50/
dir_desti=/home/Enric/Produccio/Grib/GFS0.50BIS/
cd $dir_origen/
if test -e 'gfs-0.5.'$PARAM/; then
echo "Directory exists"
else
echo "Directory doesn't exist"
cont=10
until [ $cont -lt 1 ] || test -e 'gfs-0.5.'$PARAM/; do
echo "still we don't have the folder"
sleep 10
let cont-=1
done
fi
if test -e 'gfs-0.5.'$PARAM/; then
cd 'gfs-0.5.'$PARAM/
echo "the folder exists"
mkdir $dir_desti'gfs.'$PARAM
cont=10
until [ $cont -lt 1 ];do
files=`ls | wc -l | cat $VAR1`
pesT=`du -sk | awk '{print $1}' | cat $VAR3`
if [ $pesT -lt 1000000 ] || [ $files -lt 12 ]; then
PARAM4=`date +%Y%m%d%H%M`
echo $pesT"k < 1000000k total"
echo $files "files of 12 waiting files"
echo "incomplete"
else
echo $pesT"k"
echo $files "files"
cp $dir_origen'gfs-0.5.'$PARAM/gfs.t00z.pgrb2.0p50.f* $dir_desti'gfs.'$PARAM
chmod -R 777 $dir_desti'gfs.'$PARAM/*
echo "GFS-0.5 $PARAM downloaded"
let cont=1
exit
fi
let cont-=1
sleep 10
done
fi