2017-04-07 16 views
0

こんにちは私のバックアップ手順のためのbashスクリプトを書いて、私はフォルダを監視し、毎月このフォルダに目標ディレクトリを同期し、毎日母ディレクトリに変更します。 bashはrsyncが処理を完了するのを待ちます

は、私が最初に私はwaitコマンドでそれを実装し終えた後に、第2の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か月後に開始します。何が行われますか?) –

答えて

1

rsyncをバックグラウンド(&)で実行していて、それを待っています。単にそれを正常に実行するのではなく(&なし)、待つ必要はありません。次のコマンドは、最初のrsyncが終了した後にのみ実行されます。

関連する問題