GNU/Linux >> Linux の 問題 >  >> Linux

実用的な例を含む Linux rsync コマンド

Rsync は、高速で非常に用途の広いファイル コピー ツールです。ローカルにコピーしたり、任意のリモート シェルを介して別のホストとの間でコピーしたり、リモート rsync デーモンとの間でコピーしたりできます。動作のあらゆる側面を制御し、コピーするファイル セットの非常に柔軟な指定を可能にする多数のオプションを提供します。これは、ソース ファイルと宛先の既存のファイルの違いのみを送信することにより、ネットワーク経由で送信されるデータの量を削減するデルタ転送アルゴリズムで有名です。 Rsync は、バックアップとミラーリングに広く使用されており、日常使用のための改良されたコピー コマンドとしても使用されています。

Rsync は、サイズまたは最終変更時刻が変更されたファイルを探す「クイック チェック」アルゴリズム (デフォルト) を使用して、転送する必要があるファイルを見つけます。ファイルのデータを更新する必要がないことがクイック チェックで示された場合、(オプションで要求されたように) 保存されているその他の属性の変更は、目的のファイルで直接行われます。

rsync の追加機能のいくつかは

  • リンク、デバイス、所有者、グループ、権限のコピーのサポート
  • GNU tar と同様の除外オプションと除外オプション
  • CVS が無視するのと同じファイルを無視するための CVS 除外モード
  • ssh や rsh など、透過的なリモート シェルを使用できます
  • スーパーユーザー権限は必要ありません
  • 遅延コストを最小限に抑えるためのファイル転送のパイプライン化
  • 匿名または認証済み rsync デーモンのサポート (ミラーリングに最適)

構文

rsync コマンドの基本的な構文は次のとおりです:

# rsync options source destination

一般的に使用されるオプションの一部:

  • –削除 :送信者 (システム) に存在しないファイルを削除します。
  • -v :詳細出力
  • -e 「ssh オプション」 :ssh をリモート シェルとして指定します
  • -a :アーカイブ モード
  • -r :ディレクトリに再帰
  • -z :ファイルデータを圧縮

Linux での rsync コマンドの例

ローカル システム上のファイルとディレクトリを同期する

# rsync -zvr /usr/  /root/sync-data/

上記のコマンドは、/usr フォルダーのすべてのファイルとディレクトリを /root/sync-data フォルダーにコピーまたは同期します。

パーミッションを保持したままローカルでファイルを同期

-a オプションは次のことを行います:再帰機能を提供し、パーミッション、シンブリック リンク、ユーザーおよびグループ情報を保持します。

# rsync -azv /usr/ /root/sync-data/

ローカル マシンからリモート サーバーへのファイルの同期/コピー

# rsync -avz /root/sync-data/ [email protected]:/tmp

上記のコマンドは、/root/syc-data フォルダーのデータをリモート マシンにコピーし、/tmp フォルダー内のルート ユーザー認証情報を使用します。

リモート サーバーからローカル マシンへのファイルの同期/コピー

# rsync -avz [email protected]:/tmp/src /opt 
[email protected]'s password: 
receiving file list ... done 
src/ 
src/debug/ 
src/kernels/
sent 38 bytes  received 99 bytes  10.96 bytes/sec 
total size is 0  speedup is 0.00

上記のコマンドは、リモート サーバーの /tmp/src フォルダーをローカル マシンの /opt フォルダーにコピーします。

ssh 経由のリモート同期

rsync を使用すると、ssh、つまり安全な通信を介してファイルをリモート マシンと同期したり、その逆を行うことができます。 「rsync -e ssh」を使用して、使用するリモート シェルを指定します。この場合、rsync は ssh を使用します。

# rsync -avz -e ssh [email protected]:/var/lib/rpm  /opt 
The authenticity of host '192.168.2.149 (192.168.2.149)' can't be established. 
RSA key fingerprint is 45:fc:99:57:34:ba:6a:bb:e3:6f:00:bb:ca:15:3d:c3. 
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.149' (RSA) to the list of known hosts.
[email protected]'s password: 
receiving file list ... done 
rpm/ 
rpm/.rpm.lock 
rpm/Basenames 
rpm/Conflictname 
............
rpm/Triggername
sent 422 bytes  received 12521670 bytes  115410.99 bytes/sec 
total size is 35467264  speedup is 2.83

同期の進行状況を表示

オプション「–progress」を使用して、同期の進行状況を表示できます。

# rsync -avz  --progress [email protected]:/usr   /opt 
[email protected]'s password: 
receiving file list ... 
44609 files to consider 
usr/ 
usr/tmp -> ../var/tmp 
usr/bin/ 
usr/bin/.fipscheck.hmac 
65 100%   63.48kB/s    0:00:00 (xfer#1, to-check=44605/44609) 
usr/bin/.ssh.hmac 
65 100%   63.48kB/s    0:00:00 (xfer#2, to-check=44604/44609) 
usr/bin/GET 
14519 100%  248.75kB/s    0:00:00 (xfer#3, to-check=44603/44609) 
usr/bin/HEAD 
14519 100%  232.44kB/s    0:00:00 (xfer#4, to-check=44602/44609)
............

rsync にオプションを含める/除外する

rsync を使用すると、同期中にファイルまたはディレクトリを含めたり除外したりするパターンを指定できます。

# rsync -avz --include 'P*' --exclude '*' [email protected]:/var/lib/rpm/  /opt 
[email protected]'s password: 
receiving file list ... done 
./ 
Packages 
Providename 
Provideversion 
Pubkeys
sent 129 bytes  received 9395561 bytes  695977.04 bytes/sec 
total size is 28999680  speedup is 3.09

上記の例には、「P」で始まるファイルまたはディレクトリのみが含まれ、他のすべてのファイルは除外されます。 (rsync exclude ‘*’ を使用)

ファイルがソースに存在しない場合、ターゲットでファイルを削除します

ソースに同じファイルが存在しない場合、rsync の「–delete」オプションを使用して、ターゲットで作成されたファイルを削除できます。

# rsync -avz --delete [email protected]:/var/lib/rpm/  /opt

例:9 「-I」オプションを使用してソースとターゲット間の変更を表示する

ソースとターゲットの間の変更を表示

「-i」オプションを使用して、ソース ファイルとターゲット ファイルの間の変更を表示できます。例:

# rsync -avzi [email protected]:/var/lib/rpm/ /opt
 [email protected]'s password:
 receiving file list ... done
 >f+++++++ .rpm.lock
 >f+++++++ Basenames
 >f+++++++ Conflictname
 >f+++++++ Dirnames
 >f+++++++ Filedigests
 >f+++++++ Group
 >f+++++++ Installtid
 >f+++++++ Name
 >f+++++++ Obsoletename
 >f+++++++ Requirename
 >f+++++++ Requireversion
 >f+++++++ Sha1header
 >f+++++++ Sigmd5
 >f+++++++ Triggername
sent 328 bytes  received 3126214 bytes  297765.90 bytes/sec
total size is 35467264  speedup is 11.34

転送ファイルのサイズを制限する

「–max-size」オプションを使用して、rsync が特定のサイズを超えるファイルを転送しないように強制できます。

# rsync -avz --max-size='200k' [email protected]:/var/lib/rpm/ /opt

上記のコマンドは、rsync が 200K 以下のファイルのみを転送するようにします。 M はメガバイト、G はギガバイトを表すことができます。


Linux
  1. 25Linuxでの便利なfindコマンドの実用例

  2. LinuxでのJQコマンドと例

  3. Linuxでのrsyncコマンドの実用例

  1. 例を含むwcLinuxコマンド

  2. Linuxのソートコマンドと例

  3. Linuxでの解凍コマンドの実用例

  1. Linuxでのエコーコマンド(例付き)

  2. LinuxでのRsyncコマンドと例

  3. Linuxipコマンドと例