毎日、特定のディレクトリの一部のファイルを別の場所にコピーする必要があります。変更のみをコピーしたいので、rsync
ファイルは次の命名規則に従います。mysql-bin.*
私のコマンドは次のとおりです。
# rsync --update -raz --progress /var/lib/mysql/mysql-bin.* /dbdata/binarylog/
混乱しているのは、ディレクトリ全体の内容ではなく、ディレクトリからいくつかのファイルをコピーする予定だったため、*
必要なファイルだけをコピーしたことです。私は同じ目的を達成するために私のコマンドが正しいかどうか疑問に思います。
答え1
かなりよさそうだ。しかし、-z
圧縮転送オプションを使用するのはなぜですか?このオプションは通常、低速ネットワーク経由でリモートrsyncサーバーにコピーするときに使用されます。この場合、ファイルはすぐに圧縮および解凍されるため、何の利点もなくCPU使用率が増加します。
-a
(アーカイブ)オプションは(-r
再帰)オプションを意味するため、コマンドラインで明示的に指定する必要はありません。
-n
オプション(または--dry-run
)を使用してコマンドを確認できます。実際にファイルをコピーせずに実行する操作を示します。実際に何が起こっているのかを見るには、オプション-v
(または--verbose
)も使用する必要があります。
だから:
rsync -uanv /var/lib/mysql/mysql-bin.* /dbdata/binarylog/
テスト実行でファイルが正しくリストされたら、以下を削除しますnv
。
rsync -ua --progress /var/lib/mysql/mysql-bin.* /dbdata/binarylog/