2017-04-07 124 views
0

嗨我为备份过程写了一个bash脚本,我监视一个文件夹并每月将目标目录同步到此文件夹,并每天更改一个母目录。bash等待rsync完成处理

我想之后的第一个完成我与等待命令执行它来启动第二rsync的过程,但它不工作:

if [ ! -f $MONTH_COMPARE/monat-$MONTH-compare.log ]; then 
    rsync -avh --force --delete --update --log-file=$MONTH_COMPARE/monat-$MONTH-compare.log $SOURCE_LOC $MONTH_COMPARE & 
fi 
wait 

if [[ $MONTH -eq 1] && [ $DAY -eq 1]]; then 
    rm -rf $BACKUP_DIR/$LASTYEAR/12 
    mkdir $BACKUP_DIR/$LASTYEAR/12 

    #compare changes of last month to backup year month 
    rsync -avh --force --ignore-errors --log-file=$BACKUP_DIR/$LASTYEAR/12/monat-$MONTH.log --compare-des=$MONTH_COMPARE $SOURCE_LOC $BACKUP_DIR/$LASTYEAR/12 && 
    #update aktuell with day changes 
    rsync -avh --force --ignore-errors --delete --update --log-file=$BACKUP_DIR/$YEAR/$MONTH/$DAY/tag-$DAY.log --backup-dir=$BACKUP_DIR/$YEAR/$MONTH/$DAY $SOURCE_LOC $TARGET_DIR && 
    #update the month compare folder da 1. des neuen monats 
    rsync -avh --force --ignore-errors --delete --update --log-file=$MONTH_COMPARE/monat-$MONTH-compare.log $SOURCE_LOC $MONTH_COMPARE & 
fi 
wait 

如何做到这一点?

+1

你是什么意思“它不工作”? (例如,是否清除所有数据,一个月后开始,它会做什么?)。 –

回答

1

您正在后台运行rsync(&),然后等待它。为什么不直接运行它(没有&),所以你不需要等待。下一个命令将只在第一个rsync完成后执行。