rsyncについて質問があります。 2台のサーバーがあります。サーバー1でrsyncコマンドを実行して、サーバー2のすべてのデータ/ファイルを自分のサーバーに同期したいと思います。サーバー2に/var/www/html/hello/*フォルダがあるとします。すべてのファイルはサーバー2からサーバー1への権限と同期する必要がありますが、コマンドはサーバー1で実行する必要があります。 rsyncを使ってこれを行うにはどうすればよいですか?
答え1
rsync -ai user2@server2:/var/www/html/hello/ local/directory/hello
SSHを使用してserver2
ユーザーとして接続しますuser2
。このユーザーには、コピーするすべてのファイルとディレクトリへのアクセス権が必要です。ディレクトリの内容がローカルコンピュータに/var/www/html/hello/
コピーされます。local/directory/hello
/
末尾のソースディレクトリパスを書き留めます。これがなければ、hello
ターゲットフォルダから呼び出されるディレクトリにファイルとディレクトリを配置します。
追加した場合は、--delete
ソース側で使用できないターゲットディレクトリのローカルファイルも削除する必要があります。
この-i
オプションは、転送中のアイテムの詳細リストを開きます。-v
代わりに使用することを好む人もいます-i
。この-a
オプションは、できるだけ多くの権限やその他のメタデータを保存し、サブディレクトリにファイルを繰り返しコピーするオプションです。
答え2
rsyncは単純なコピープログラムのように動作します。したがって、リモートで同期することは次のとおりです(リソースや権限などの追加オプションなしで...)。
rsync remoteuser@remoteserver:/var/www/html/hello/* /to/local/folder/
これにより、リモートファイル(フォルダではない)がローカルフォルダにコピーされます。
オプションの使用-avzバックアップアーカイブ(権限などを含む):
rsync -avz remoteSource localDestination
その他のオプションについては、マニュアルページをご覧ください。
編集1:
*
ソースフォルダでtailを使用することについてのkusalanandaの最初のコメントを検討してください。