回答:
除外ルールを使用する前に、すべての親ディレクトリを目的のディレクトリまで含める必要があります。
たとえば、バックアップスクリプトで次を使用します。
rsync -av \
--filter='+ /var/' \
--filter='+ /var/backups/' \
--filter='- /var/*' \
/ \
$DEST
そのため、次のようなものが必要になります。
rsync -av \
--filter='+ /home/' \
--filter='+ /home/user1/' \
--filter='+ /home/user2/' \
--filter='+ /home/user2/subdir/' \
--filter='- /home/user2/*' \
--filter='- /home/*' \
/ \
$DEST
man rsync
、私はミキシングの適切な順序に含まれるものと除外されるものを誤解しました。それは...それを把握するために私に時間を要した
コマンドラインで:
rsync --dry-run --verbose --recursive --include=/home/user1 --exclude=/home/* / DEST
削除--dry-run
して機能させ、「DEST」を宛先に置き換え、必要に応じてソースと「/」にユーザーとホストを追加します。
ルールファイルから:
rsync --dry-run --verbose --recursive --filter='merge /etc/rsync/somerules.rules' / DEST
の内容は/etc/rsync/somerules.rules
次のとおりです。
+/ /home/user1
-/ /home/*
これらをテストする必要があり、いくつかの調整が必要になる場合がありますが、これで開始できます。