Rsync、リモート同期の略 は、2つのLinuxシステム間でファイルをコピーおよび同期するために使用されるLinuxコマンドです。これは、ファイルまたはディレクトリに加えられた追加の変更が別のLinuxシステムに複製されるように機能します。
Linux rsyncコマンドを使用すると、Linuxシステムとサーバー間でバックアップをローカルおよびリモートでシームレスにコピーおよび同期できます。この記事では、rsyncコマンドと一緒に使用できるさまざまなコマンドオプションについて説明します。
Linuxrsyncコマンドの基本構文
rsyncの構文を以下に簡単に要約します。
$ rsync options source destination
rsyncコマンドで使用されるオプション
- -z :これはデータを圧縮します。
- -v :これにより、プロセスが冗長モードで表示されます。
- -r :このオプションはデータを再帰的にコピーします(ただし、このオプションはデータ転送中にタイムスタンプとファイル権限を保持しません)。
- -h :これは、人間が読める形式で情報を出力します。
- -a :これにより、ファイルを再帰的にコピーできるだけでなく、シンボリックリンク、タイムスタンプ、ファイルのアクセス許可、およびユーザーとグループの所有権も保持されます。
ファイルとディレクトリをローカルにコピーする
以下に示す例を使用して、Linuxマシンのある場所から別の場所にファイルをローカルで同期できます。
$ rsync -zvh backup.tar /opt/backup_dir
上記の例では、tarball backup.tar
コピーされ、/opt/backup_dir
に同期されます ディレクトリ。
サンプル出力
ディレクトリをある場所から別の場所にローカルにコピーするには :
構文はファイルのコピーに似ていますが、この場合は-a
を使用します。 再帰コピーのフラグ。
以下の例では、deb_packages
をコピーして同期しています。 /opt/backup_dir
へのディレクトリ ディレクトリ。
$ rsync -azvh deb_packages /opt/backup_dir
サンプル出力
リモートサーバーとの間でファイルまたはディレクトリをコピー/同期する
ディレクトリをリモートサーバーにコピーするには、サーバーのユーザー名とIPアドレスを宛先フォルダーと一緒に指定する必要があります。
以下の例では、deb_packages
ディレクトリは、IP 66.152.163.19
を使用してリモートサーバーにコピーされます rootユーザーの資格情報を使用し、rootホームディレクトリに保存します。
$ rsync -avz deb_packages [email protected]:
サンプル出力
ディレクトリをリモートサーバーからローカルPCにコピーして同期するには :
リモートシステムからローカルLinuxシステムにファイルをコピーして同期するには、以下の例を使用します
$ rsync -avzh [email protected]:documents /opt/backup_dir
上記の例では、ディレクトリdocuments
IP 66.152.163.19
を使用してリモートシステムから再帰的にコピーされます /opt/backup_dir
のローカルシステムに ディレクトリ。
SSH経由のRsyncコマンド
RsyncをSSHプロトコルと一緒に使用して、Linuxシステムとの間で送受信されるファイルを保護または暗号化できます。これにより、ネットワークを介して転送しているデータをだれも盗聴できないようになります。
SSH経由のrsyncを使用して、ローカルサーバーからリモートサーバーにファイルをコピーするには:
この例では、-e
を使用します プロトコル(この場合はSSH)を指定するためのrsyncのオプション。
$ rsync -avhze ssh backup.tar [email protected]:/backup_dir
サンプル出力
SSH経由のrsyncを使用して、リモートサーバーからローカルシステムにファイルをコピーするには:
前の例と同様に、rsyncコマンドは-e
と一緒に使用されます オプション。
$ rsync -avzhe ssh [email protected]:/backup_dir /tmp/
サンプル出力
rsyncコマンドでデータを転送している間の進行状況を表示する
データ転送中の進行状況を表示する場合は、--progress
を使用してください オプション。これにより、ファイルとデータ転送が完了するまでの推定時間が表示されます。
サンプル出力
–includeおよび–excludeオプションを指定したLinuxrsyncコマンド
上記のこれらのオプションは、ユーザーがinclude
するのに役立ちます およびexclude
同期プロセスに含めたり除外したりする可能性のあるファイル。
以下の例では、rsyncコマンドはそれらのファイルを/var/lib
に含めます。 「p」で始まり、他のすべてのファイルとディレクトリを除外するディレクトリ。
$ rsync -avz --include 'p*' --exclude '*' /var/lib [email protected]:/opt/backup_dir
サンプル出力
転送するファイルの最大サイズを設定する
「–max-size」オプションを使用して、転送および同期される最大ファイルサイズを定義できます。
$ rsync -avzh --max-size='50M' deb_packages [email protected]:/opt/backup-dir
上記のコマンドは、deb_packages
内のファイルの転送を制限します ディレクトリを50メガバイトにします。これは、50MB以下のファイルのみが転送および同期されることを意味します。
サンプル出力
転送が成功した後にソースファイルを削除する
ファイルのバックアップコピーをリモートターゲットに作成しているが、ローカルコピーを保持したくない場合は、–remove-source-files
を使用します。 示されているオプション。
$ rsync --remove-source-files -zvh backup.tar /tmp/mybackups/
サンプル出力
この記事がお役に立てば幸いです。ご不明な点がございましたら、フィードバックをお寄せください。