find
のファイルリストを作成するために、パスのリストを含む外部ファイルをループするスクリプトがありますrsync
。これらのパスには、さまざまな量のパス除外があります(まったく除外しないことを含む)。find
これに基づいて除外を構築する変数を拡張しようとしています。私はたくさんの研究をして困惑しています。言う:
cat backuplist.conf
:
/mnt/some/dir1 /mnt/some/dir1/exclude/dirA /mnt/some/dir1/exclude/dirB
/mnt/some/dir2
メインのバックアップスクリプトの関連部分は次のとおりです。
cat backupscript.sh
:
while read backuppath excludedir1 excludedir2 excludedir3; do
exclude=("${excludedir1}" "${excludedir2}" "${excludedir3}")
find ${backuppath} -not \( -path "*${exclude[0]}" "${exclude[@]:1}") -mtime -10 > file.list
rsync -vPaz --files-from=file.list --otheroptions
done < backuplist.conf
私はその配列の例が(とりわけ)すべて間違っていることを知っていますが、除外がいくつあるかわからないので、配列を構築することが正しい解決策であるかどうかさえわかりません。誰かが私を正しい方向に向けることができますか?Bash / CentOS 6