rsyncの基本的な使い方とオプションの解説

スポンサーリンク
rsyncの基本的な使い方とオプションの解説 ノウハウ
rsyncの基本的な使い方とオプションの解説
この記事は約12分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は rsync をご紹介します。

スポンサーリンク

rsync とは

rsyncは、複数のコンピュータ間でファイルを同期するためのツールです。以下にrsyncを使用するメリットをいくつか挙げます。

  1. 高速な転送: rsyncは、差分転送を利用することで、変更されたファイルのみを転送し、必要のないファイルを転送しないため、高速な転送が可能です。
  2. ネットワーク帯域幅の節約: rsyncは、変更があったファイルのみを転送するため、ネットワーク帯域幅を節約できます。
  3. 転送中の途中で中断しても再開可能: rsyncは、途中で転送が中断しても、再開が可能です。このため、大きなファイルを転送する際にも安心して使用できます。
  4. 多様な転送方法: rsyncは、SSHなどのセキュアな転送方法を使用することができます。また、クロスプラットフォームであるため、WindowsやLinuxなどの異なるOS間での転送も可能です。
  5. 同期機能: rsyncは、2つのディレクトリの間で同期を行うことができます。これにより、2つのディレクトリ間でファイルの更新や削除を同期することができます。

以上がrsyncを使用するメリットの一部です。rsyncは、ファイルのバックアップや転送などの用途で広く使われているツールです。

自分は、バックアップ用途で使用することが多いです。ローカルのディレクトリをクラウド上にバックアップするときに使用しています。

rsyncのバージョンアップについて

自分のMac で rsync のバージョンを確認すると下記のようになりました。

% rsync --version
rsync  version 2.6.9  protocol version 29
Copyright (C) 1996-2006 by Andrew Tridgell, Wayne Davison, and others.
<http://rsync.samba.org/>
Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles,
              inplace, IPv6, 64-bit system inums, 64-bit internal inums

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

バージョンが古いのでバージョンアップします。

rsyncをバージョンアップするメリット

最新バージョンのrsyncには、以前のバージョンと比較して多数の修正や改善が含まれているため、下記の理由からバージョンアップを推奨しています。

  1. セキュリティの向上:最新バージョンのrsyncには、以前のバージョンよりも強化されたセキュリティ機能が含まれています。これにより、より安全なファイル転送や同期が可能になります。
  2. パフォーマンスの向上:最新バージョンのrsyncには、以前のバージョンよりも高速なファイル転送機能が含まれています。これにより、大きなファイルや多数のファイルを扱う場合に、作業時間の短縮や効率化が可能になります。
  3. 新しい機能の追加:最新バージョンのrsyncには、以前のバージョンにはない新しい機能が含まれています。これにより、より高度なファイル同期やバックアップを実行することができます。
  4. バグ修正:最新バージョンのrsyncには、以前のバージョンで報告されたバグや問題が修正されています。これにより、より信頼性の高いファイル同期やバックアップが可能になります。

これらの理由から、rsyncを最新バージョンにアップグレードすることは、重要なセキュリティやパフォーマンス上の利点を享受するために推奨されます。

rsyncのバージョンアップ方法

Macにおけるrsyncをバージョンアップするための手順は下記になります。

  1. ターミナルアプリケーションを開きます。
  2. Homebrewをインストールします。Homebrewは、Macでソフトウェアを管理するためのパッケージ管理システムです。Homebrewを使用すると、rsyncを最新バージョンにアップグレードすることができます。Homebrewをインストールするには、次のコマンドをターミナルに入力して実行します。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. rsyncをアップグレードするには、次のコマンドをターミナルに入力して実行します。
brew install rsync

これにより、rsyncが最新バージョンにアップグレードされます。

以上が、Macでrsyncをバージョンアップする方法です。

実行環境

この記事で使用されているコマンドは下記の環境で実行されています。

% sw_vers 
ProductName:            macOS
ProductVersion:         13.2.1
BuildVersion:           22D68

% sysctl machdep.cpu.brand_string
machdep.cpu.brand_string: Apple M1 Max

% rsync --version
rsync  version 3.2.7  protocol version 31
Copyright (C) 1996-2022 by Andrew Tridgell, Wayne Davison, and others.
Web site: https://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, symlinks, symtimes, hardlinks, hardlink-specials,
    hardlink-symlinks, IPv6, atimes, batchfiles, inplace, append, ACLs,
    xattrs, optional secluded-args, iconv, no prealloc, stop-at, crtimes,
    file-flags
Optimizations:
    no SIMD-roll, no asm-roll, openssl-crypto, no asm-MD5
Checksum list:
    xxh128 xxh3 xxh64 (xxhash) md5 md4 sha1 none
Compress list:
    zstd lz4 zlibx zlib none
Daemon auth list:
    sha512 sha256 sha1 md5 md4

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

使用例

以下に、rsyncの使用例をいくつか紹介します。各コマンドのオプションについても説明します。

ローカルでのフォルダのバックアップ

rsync -avh /path/to/source /path/to/destination

このコマンドは、指定したソースフォルダの内容を、指定したデスティネーションフォルダにバックアップします。オプション -a はアーカイブモードで、パーミッションやタイムスタンプ、所有者情報を保持してコピーします。-v オプションは冗長モードで、詳細な出力を表示します。-h オプションは、人間が読みやすい形式でサイズを表示するために使用されます。

dry-runモード

rsync -av --dry-run /path/to/source/ /path/to/destination/

このコマンドは、/path/to/source/から/path/to/destination/にファイルを同期することを意味しています。しかし、-nオプションを使用して、実際にはファイルを同期しないようにしています。

実行すると、rsyncは、同期されるファイルのリストを表示しますが、実際にはファイルを転送しません。これにより、同期する前にどのファイルが転送されるかを確認することができます。

dry-runモードは、実際の同期やバックアップ前に、どのファイルが同期されるかを確認したい場合に便利です。また、誤って重要なファイルを上書き・削除することを防ぐためにも、dry-runモードを使用することをお勧めします。

リモートサーバーにファイルを転送する(アップロード)

rsync -avz /path/to/local/file user@remote.server:/path/to/remote/folder/

このコマンドは、指定したローカルファイルをリモートサーバーに転送します。-z オプションは圧縮転送モードで、データを圧縮して転送するため、帯域幅を節約できます。user@remote.server の部分は、リモートサーバーへのSSH接続情報を指定します。

リモートサーバーからファイルを転送する(ダウンロード)

rsync -avz user@remote.server:/path/to/remote/folder/ /path/to/local/folder

このコマンドは、リモートサーバーの指定したフォルダから、指定したローカルフォルダにファイルを転送します。user@remote.server の部分は、リモートサーバーへのSSH接続情報を指定します。

差分のみ転送する

rsync -avz --update /path/to/source/ user@remote.server:/path/to/remote/folder/

このコマンドは、指定したソースフォルダの変更があったファイルのみを、リモートサーバーに転送します。--update オプションは、変更があったファイルのみを転送するためのオプションです。

同期を取る

rsync -av --delete /path/to/source/ /path/to/destination/

このコマンドでは、-aオプションを使用して、ファイル属性を保持したまま再帰的にディレクトリを同期します。–deleteオプションを使用して、宛先ディレクトリから、ソースディレクトリに存在しないファイルやディレクトリを削除します。

以上が、rsyncの一部の使用例とオプションの説明です。rsyncには、多くのオプションがあり、用途に合わせて適切なオプションを選択することが重要です。

部分同期を取る

rsync -avz --partial /path/to/source/ /path/to/destination/

この例では、-aオプションを使用して、ファイルの属性を保持し、再帰的にディレクトリを同期します。-vオプションを使用して、詳細な情報を表示します。-zオプションを使用して、データを圧縮して転送します。そして、–partialオプションを使用して、転送が途中で中断された場合でも、その時点までに転送された部分だけを保持し、再開できるようにします。

例えば、500MBの大きなファイルがある場合、途中で転送が中断された場合でも、残りの部分だけを転送することができます。この場合、次回の転送で、中断された部分から再開することができます。部分的な転送を行うことで、ファイルの同期時間を大幅に短縮することができます。

特定のファイルを除外して同期する

rsync -avz --exclude-from=/path/to/exclude_list.txt /path/to/source/ /path/to/destination/

–exclude-fromオプションを使用することで、同期時に特定のファイルやディレクトリを除外することができます。例えば、.gitディレクトリを除外したい場合は、exclude_list.txtファイルに、「.git」を記述します。

注意点

rsyncは非常に強力なツールですが、注意点もあります。以下に、rsyncを使用する際に注意すべき点をいくつか紹介します。

  1. ファイルの上書きに注意する

rsyncを使用する際に、宛先ディレクトリにすでに同名のファイルが存在する場合、rsyncはそのファイルを上書きします。このため、重要なファイルを上書きしてしまわないように注意が必要です。–backupオプションを使用して、バックアップファイルを作成することができます。

  1. 転送先のディレクトリに注意する

rsyncを使用する際に、誤って転送先のディレクトリを指定してしまわないように注意が必要です。特に、”–delete”オプションを使用する場合は、指定したディレクトリを完全に削除してしまう可能性があるため、十分に注意して使用する必要があります。

  1. セキュリティに注意する

rsyncを使用する際に、転送中のデータが盗まれたり改ざんされたりしないようにするために、sshやrsync over sshのようなセキュアな通信チャネルを使用することをお勧めします。また、パスワードや重要な情報を含むファイルを転送する場合は、暗号化された通信チャネルを使用することをお勧めします。

  1. バックアップを定期的に取得する

rsyncを使用してバックアップを作成する場合、定期的にバックアップを取得することが重要です。また、バックアップを複数の場所に保存することもお勧めします。これにより、万が一に備えてデータを保護することができます。

以上の点に注意しながら、rsyncを使用することで、安全かつスムーズにデータを同期・バックアップすることができます。

おわりに

rsyncは、ファイルの同期やバックアップを簡単に行うことができ、変更された部分だけを効率的に転送することができます。ただし、使用方法を誤るとファイルが消えたり、ファイルの中身が更新されたりするので、使用前には、dry-runをして動作確認をしましょう。

それさえ、注意すれば、強力なツールだと思いますので、手動でバックアップをしている方は使ってみるといいと思います。

よっしー
よっしー

また明日お会いしましょう!

コメント

タイトルとURLをコピーしました