現在、私は次のDirectories
ようにRSyncのみを行っています。
* * * * * rsync -avz /var/www/public_html/images root@<remote-ip>:/var/www/public_html
では、どのようにしてrsync
単一のファイルを作成するの/var/www/public_html/.htaccess
ですか?
回答:
ディレクトリの場合と同じ方法で行いますが、ソースとしてファイル名へのフルパスを指定します。あなたの例では:
rsync -avz --progress /var/www/public_html/.htaccess root@<remote-ip>:/var/www/public_html/
Michael Placeの回答は、ソースとターゲットの両方のルートディレクトリに対して、ファイルのパスにあるすべてのディレクトリがすでに存在している場合に適切に機能します。
しかし、次のソースパスでファイルを同期したい場合はどうでしょう。
/ source-root / a / b / file
次のターゲットパスを持つファイルに:
/ target-root / a / b / file
そしてディレクトリaとbは存在しませんか?
次のようなrsyncコマンドを実行する必要があります。
rsync -r --include="/a/" --include="/a/b/" --include="/a/b/file" --exclude="*" [source] [target]
これまでのところ、2つの回答は完全ではなく、1つ以上のファイルを取得し、もう1つはそれほど単純ではありません。より簡単な回答IMOを次に示します。
以下はファイルを1つだけ取得しますが、mkdirを使用してdestディレクトリを作成する必要があります。これはおそらく最速のオプションです。
mkdir -p ./local/path/to/file
rsync user@remote:/remote/path/to/file/ -zarv --include "filename" --exclude "*" ./local/path/to/file/
/ remote / pathにファイルのインスタンスが1つしかない場合、以下を実行すると、rsyncがディレクトリを作成します。これは、より多くのディレクトリを検索するため、おそらくもう少し時間がかかります。さらに、。/ localにない/ remote / pathのディレクトリに空のディレクトリを作成します
cd ./local
rsync user@remote:/remote/path -zarv --include "*/" --include "filename" --exclude "*" .
--includeと--excludeの順序が重要であることを覚えておいてください。