rsync は、リモートシェルを介して2つの場所間で、またはリモートRsyncデーモンとの間でファイルとディレクトリを同期するための高速で用途の広いコマンドラインユーティリティです。ソースと宛先の違いのみを転送することにより、高速の増分ファイル転送を提供します。
Rsyncは、データのミラーリング、増分バックアップ、システム間でのファイルのコピー、およびscpの代わりに使用できます。 、sftp 、およびcp コマンド。
この記事では、rsyncの使用方法について説明します 最も一般的なrsyncの実用的な例と詳細な説明を通じて オプション。
Rsyncのインストール#
rsync ユーティリティは、ほとんどのLinuxディストリビューションとmacOSにプリインストールされています。 rsyncがない場合 システムにインストールされている場合は、ディストリビューションのパッケージマネージャーを使用して簡単にインストールできます。
UbuntuとDebianにRsyncをインストールする#
sudo apt install rsync CentOSおよびFedoraにRsyncをインストールする#
sudo yum install rsync Rsyncコマンド構文#
rsyncの使用方法に入る前に コマンド、基本的な構文を確認することから始めましょう。
rsync ユーティリティ式は次の形式を取ります:
Local to Local: rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
OPTION-rsyncオプション。-
SRC-ソースディレクトリ。 -
DEST-宛先ディレクトリ。 USER-リモートユーザー名。HOST-リモートホスト名またはIPアドレス。
rsync コマンドの動作を制御するいくつかのオプションを提供します。最も広く使用されているオプションは次のとおりです。
-
-a、--archive、アーカイブモード、-rlptgoDと同等 。このオプションは、rsyncに通知します ディレクトリを再帰的に同期し、特別なデバイスとブロックデバイスを転送し、シンボリックリンク、変更時間、グループ、所有権、およびアクセス許可を保持します。 -
-z、--compress。このオプションは、rsyncを強制します データが宛先マシンに送信されるときにデータを圧縮します。このオプションは、リモートマシンへの接続が遅い場合にのみ使用してください。 -
-P、--partial --progressと同等 。このオプションを使用する場合、rsyncは転送中のプログレスバーを表示し、部分的に転送されたファイルを保持します。低速または不安定なネットワーク接続を介して大きなファイルを転送する場合に便利です。 --delete。このオプションを使用する場合、rsync宛先の場所から無関係なファイルを削除します。ミラーリングに役立ちます。-
-q、--quiet。エラー以外のメッセージを抑制したい場合は、このオプションを使用してください。 -
-e。このオプションを使用すると、別のリモートシェルを選択できます。デフォルトでは、rsyncsshを使用するように構成されています。
rsyncの最も基本的なユースケース あるファイルを別のローカルの場所にコピーすることです。次に例を示します:
rsync -a /opt/filename.zip /tmp/
コマンドを実行するユーザーは、ソースの場所に対する読み取り権限と宛先に対する書き込み権限を持っている必要があります。
宛先の場所からファイル名を省略すると、ファイルが現在の名前でコピーされます。別の名前でファイルを保存する場合は、保存先の部分に新しい名前を指定します。
rsync -a /opt/filename.zip /tmp/newfilename.zip
rsyncの真の力 ディレクトリを同期するときに発生します。以下の例は、Webサイトファイルのローカルバックアップを作成する方法を示しています。
rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/
宛先ディレクトリが存在しない場合は、rsync 作成します。
rsyncについて言及する価値があります 末尾にスラッシュ(/)を付けてソースディレクトリに異なる処理を与えます )。ソースディレクトリの末尾にスラッシュがある場合、コマンドはディレクトリの内容のみを宛先ディレクトリにコピーします。末尾のスラッシュを省略した場合、rsync ソースディレクトリを宛先ディレクトリ内にコピーします。
rsyncの使用 リモートマシンとの間でデータを同期するには#
rsyncを使用する場合 データをリモートで転送するには、ソースマシンと宛先マシンの両方にデータをインストールする必要があります。 rsyncの新しいバージョン デフォルトのリモートシェルとしてSSHを使用するように構成されています。
次の例では、ディレクトリをローカルマシンからリモートマシンに転送しています。
rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/ リモートマシンにパスワードなしのSSHログインを設定していない場合は、ユーザーパスワードの入力を求められます。 リモートからローカルマシンにデータを転送するには、リモートの場所をソースとして使用します。
rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/
リモートホストのSSHがデフォルトの22以外のポートでリッスンしている場合は、-eを使用してポートを指定します オプション:
rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/
大量のデータを転送する場合は、rsyncを実行することをお勧めします スクリーンセッション内でコマンドを実行するか、-Pを使用します オプション:
rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/ ファイルとディレクトリを除外する#
ファイルとディレクトリを除外するには、2つのオプションがあります。最初のオプションは、--excludeを使用することです 引数を指定し、コマンドラインで除外するファイルとディレクトリを指定します。
ファイルまたはディレクトリを除外する場合は、ソースの場所への相対パスを使用する必要があります。
次の例では、node_modulesを除外する方法を示しています。 およびtmp ディレクトリ:
rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/
2番目のオプションは、--exclude-fromを使用することです。 オプションを選択し、ファイルから除外するファイルとディレクトリを指定します。
rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/ /exclude-file.txt node_modules
tmp
結論#
Rsyncを使用してファイルとディレクトリをコピーおよび同期する方法を示しました。 RsyncユーザーズマニュアルページでRsyncについて学ぶことはもっとたくさんあります。
ご不明な点がございましたら、お気軽にコメントをお寄せください。