用shell如何高效批量备份目录下的图片
我写了一个脚本文件,需要备份某一目录下的所有图片文件,该目录下随时都有新图片文件产生,我的需求是:备份完一张图片就在原目录中删掉;
一下是我写的脚本的一部分:
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目录下存在数千张图片时,这个备份脚本效率非常低,做完一次备份需要好几个小时,全耽搁在一张张图片的备份上了。请问有什么方法满足我的需求的前提下提高效率?