嗨,我
为我的备份过程编写了一个 bash 脚本,我监视一个文件夹并将目标目录每月同步到该文件夹,每天将更改同步到母目录。
我希望第二个 rsync 进程在第一个进程完成后启动 我使用 wait 命令实现了它,但它不起作用:
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
如何做到这一点?
您在后台运行 rsync (&(,然后等待它。为什么不正常运行它(没有 &(,这样你就不需要等待了。下一个命令只会在第一个 rsync 完成后执行。