我写了一个脚本文件,需要备份某一目录下的所有图片文件,该目录下随时都有新图片文件产生,我的需求是:备份完一张图片就在原目录中删掉;
一下是我写的脚本的一部分:
cd   $SOURCEDIR
find | sed '1d' > $SCRIPTDIR/filelist.txt
for i in `cat $SCRIPTDIR/filelist.txt`
do
    if [ ! -d $i ]
    then
        echo "start backup $i to $BACKUPDIR/$SERVERNAME_ORCPICBAK_{$DATEDAY}.ZIP" >> $SCRIPTDIR/logs.log
        zip $BACKUPDIR/${SERVERNAME}_ORCPICBAK_${DATEDAY}.ZIP  $i >> $SCRIPTDIR/logs.log  2>&1
        if [ $? -eq 0 ]
        then
            echo "backup $i Success,start delete $i from $SOURCEDIR" >> $SCRIPTDIR/logs.log
            rm -rf $i
        else
            echo "file $i backup fail!!!" >> $SCRIPTDIR/logs.log
        fi
    fi
done
上面脚本在执行那刻将原目录下的图片文件存到临时文件filelist.txt中,我只对filelist.txt保存的文件进行备份、删除,从而不影响新增图片文件。如果那个$SOURCEDIR目录下存在数千张图片时,这个备份脚本效率非常低,做完一次备份需要好几个小时,全耽搁在一张张图片的备份上了。请问有什么方法满足我的需求的前提下提高效率?