パターンマッチングを使用するrsync固有のサブディレクトリ

パターンマッチングを使用するrsync固有のサブディレクトリ

rsyncを使用して特定のサブディレクトリセットをコピーしてバックアップしようとしています。私のディレクトリ構造は次のとおりです。

/path/to/data/foo1
/path/to/data/foo2
/path/to/data/bar1
/path/to/data/bar2

「bar」フォルダは無視して「foo」フォルダだけをコピーしたいと思います。

また、このフォルダ内のすべての.zipファイルを無視したいと思います。

rsyncでさまざまなパラメータの組み合わせを試しましたが、目的の方法で正しく機能させることはできません。

転送を実行するには、2 つのコマンドを使用できます。

rsync --dry-run -a --human-readable --stats --progress --exclude"*.zip" "/path/to/data/foo1" "/mnt/backup/drive/"
rsync --dry-run -a --human-readable --stats --progress --exclude"*.zip" "/path/to/data/foo2" "/mnt/backup/drive"

他の場所を読んで、これがうまくいくことを願っていました。

rsync --dry-run -a --human-readable --stats --progress --include="data/foo*" --exclude="*.zip" --exclude="*" "/path/to/data" "/mnt/backup/drive"

しかし、これは「bar」フォルダもキャプチャしているようです。

--include および --exclude パラメータの順序が混乱しています。 --includeパラメータに "data"フォルダを指定する必要があるため、これは私が期待した機能ではありません。

私が逃している本当に隠すことができない信号です!

ご意見ありがとうございます。

ベストアンサー1

次の方法でrsyncを実行できます。

rsync --dry-run -av --human-readable --stats --progress --exclude="*.zip" /path/to/data/foo* /path/to/copy/to/

おそらく、次のようにコマンドを短くしたいと思うかもしれません。

rsync  -avhn --stats --progress --exclude="*.zip" /path/to/data/foo* /path/to/copy/to/

から引用人の同期

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

-v, --verbose               increase verbosity

-h, --human-readable        output numbers in a human-readable format

-n, --dry-run               perform a trial run with no changes made

コマンドを実行する準備ができたら、以下を行う必要はありません。-n

このパラメータを使用してログファイルを保存することもできます。

--log-file=

したがって、上記のrsyncコマンドは次のようになります。

rsync  -avhn --stats --progress --exclude="*.zip" --log-file=logfile.log /path/to/data/foo* /path/to/copy/to/

ログファイルは、コマンドが実行されたディレクトリに書き込まれます。別の場所に保存する必要がある場合は、絶対パスを使用する必要があります。たとえば、

--log-file=/path/to/logfile

おすすめ記事