115

リモートサーバーにプッシュしたいさまざまなサブディレクトリに約50個のファイルがあります。--include-from オプションを使用すると、rsync でこれを実行できると思いました。--exclude="*" オプションを指定しないと、ディレクトリ内のすべてのファイルが同期されます。オプションを指定すると、ファイルは同期されません。

rsync -avP -e ssh --include-from=deploy/rsync_include.txt --exclude=* ./ root@0.0.0.0:/var/www/ --dry-run

最初はドライで実行しており、0.0.0.0 は明らかにリモート サーバーの IP に置き換えられています。rsync_include.txt の内容は、アップロードするファイルへの相対パスを改行で区切ったリストです。

月曜日の朝に私を逃れているこれを行うより良い方法はありますか?

4

8 に答える 8

13

--files-from=絶対パスをそのまま維持したい場合は、パラメーターの末尾にスラッシュが必要です。したがって、コマンドは次のようになります。

rsync -av --files-from=/path/to/file / /tmp/

これは、多数のファイルがあり、すべてのファイルを x パスにコピーする場合に実行できます。したがって、ファイルを見つけて、以下のようなファイルに出力をスローします。

find /var/* -name *.log > file
于 2016-01-22T11:01:55.473 に答える
12

記録のために、上記の回答はどれも1つを除いて役に立ちませんでした. 要約すると、次の--files-from=いずれかを使用してバックアップ操作を実行できます。

rsync -aSvuc `cat rsync-src-files` /mnt/d/rsync_test/

また

rsync -aSvuc --recursive --files-from=rsync-src-files . /mnt/d/rsync_test/

前者のコマンドは、rsync-src-files以下で詳しく説明するファイルの内容に加えて、一目瞭然です。後者のバージョンを使用する場合は、次の 4 つの点に注意する必要があります。

  1. --files-fromソースディレクトリの両方を指定する必要があることに注意してください
  2. を明示的に指定する必要があります--recursive
  3. このファイルrsync-src-filesはユーザーが作成したファイルで、このテストでは src ディレクトリに配置されています
  4. rsyn-src-filesコピーするファイルとフォルダーが含まれており、ソースディレクトリに対して相対的に取得されます。重要: ファイルの末尾にスペースや空白行がないことを確認してください。以下の例では、3 行ではなく 2 行しかありません (たまたま調べてください)。の内容rsynch-src-filesは次のとおりです。

フォルダ
名1 フォルダ名2

于 2018-07-02T08:33:18.037 に答える