私のデータをバックアップできる8TBのハードドライブがあり、rsyncは簡単です。 8TB以上のストレージがあるので、さらに8TBドライブを購入しました。
私の質問は、最初のドライブにないファイルだけを2番目のドライブに同期させるようにrsyncにどのように指示しますか?
次のようにファイルリストを作成しようとしました。
cd /q/backup; find -type f > /oldbackup.txt
次のファイルが生成されます。
./a/Dir/file1
./a/Dir/file2
./b/elsewhere/thing
./...
...
それからこれを使う
rsync -rvu --delete --exclude-from=/oldbackup.txt /x/live/a /x/live/b /r/backup/
しかし、rsyncはまだコピーされます。みんなファイルから除外リストが無視されるようです。
どのように機能させますか?
また、動作していても、新しいバックアップに空のディレクトリがたくさん残っていると仮定するのは正しいですか?
答え1
はい、問題は(少なくとも私の場合)2つのようです。
./
リーダーを削除する必要があります。 rsync では、除外がソースディレクトリに対して絶対的または相対的に指定されることが予想されます。- rsyncがそのファイル名を式として解釈しないようにするには、リテラルファイル名を正規表現構文に従ってエスケープする必要があります。
はい、空のディレクトリをたくさん取得しましたが、空のディレクトリを削除するスクリプトは別の冒険です。