ファイル,ディレクトリの同期バックアップとリモートホストへの同期バックアップ・rsync

rsyncコマンドを使用すると同一マシン内での同期(差分)バックアップや、ネットワーク越しのリモートホストへの同期(差分)バックアップをコマンド1つで実現することができます。
以下にrsyncコマンドを使用して、同一マシン内での同期バックアップ方法と、ネットワーク越しの同期バックアップ方法について記します。


スポンサーリンク

関連資料

Windowsでrsyncと同様な事をしたい場合は、robocopyが便利です。
以下の資料を参考にしてみてください。

rsyncコマンドの基本

rsyncは指定したディレクトリやファイルの内容をそのまま他の場所にコピーするコマンドです。
コピー元パスとコピー先パスの内容の差分を検知して、必要な増減分のみ処理するため、通常のコピーに比べ高速です。
使用例としては、原本(コピー元パス)からUSBメモリなどのバックアップ媒体(コピー先バス)などにすれば、必要な増減分のみコピーするので早く簡単にバックアップを取ることができます。

rsyncコマンドのオプション

動作指定のオプションは多数用意されていますが、多くのケースでは以下のオプション指定が適切です。

rsync -a -v コピー元パス名 コピー先パス名

以下に上行のオプションについて説明します。

rsyncコマンド使用時は、コピー元パス名に要注意

rsyncで特に注意する点は、コピー元パス名の指定方法です。
rsyncコマンドを除くほとんどのLinuxのコマンドは、引数として取るディレクトリ名の最後に / が付いていてもなくても動作に違いはありませんが、
rsyncではコピー元パス名に限り、最後の / のあり・なしで動作に違いが出ます。

まとめると

  1. コピー元パス名の最後が / で終わっていない場合、そのディレクトリ自体がコピーの対象になります。
  2. コピー元パス名の最後が / で終わっている場合、そのディレクトリの下にあるディレクトリ・ファイルがコピーの対象となります

コピー元パス名最後の / のあり・なしの動作例

コピー元パス名最後の / のあり・なしの具体例を以下に示します。
以下のようなファイル構成を前提として説明します。

以下にいくつかのコマンドと実行した後の状態を記します。

なお、コピー先パス名にはこのようなルールはありません。

ネットワーク経由でrsyncコマンドを使う

コピー元パスとコピー先パスには、ネットワークを経由してのscpのようなホスト指定が可能です。
(ネットワーク経由でのrsyncは、sshでの接続が可能であることが必要です)。

このような場合は、以下のような構文になります。

この場合もコピー元パスに関する"/"あり・なしのルールは同じです。

以上、rsyncコマンドの使用方法について記述しました。


スポンサーリンク


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-03-08 (土) 15:35:21