rsync:差分バックアップの定番

目次
rsyncコマンドについての概要と詳細
rsyncとは
rsync
は、差分コピー機能に優れたファイル同期・バックアップツールです。ローカル・リモート間でのデータ転送に対応し、変更された部分だけを効率的にコピーするため、高速かつ帯域の節約が可能です。
主にバックアップ、ディレクトリのミラーリング、サーバ間の同期処理などに広く利用されています。
rsyncの主な特徴
- 変更・追加部分のみをコピーする「差分転送」
- リモート同期時はSSHを利用した暗号化通信が可能
- ファイルのタイムスタンプ・所有者・パーミッションも保持
- 削除や除外など多彩なオプションで柔軟な運用が可能
- スクリプトやcronとの相性も良く、自動化しやすい
インストール方法
Debian/Ubuntu系
$ sudo apt install rsync
Fedora系
$ sudo dnf install rsync
基本的な使い方
ローカルディレクトリ間の同期
$ rsync -av /home/user/source/ /home/user/backup/
-a
:アーカイブモード(タイムスタンプ・パーミッションなどを保持)-v
:詳細出力
リモートホストとの同期(SSH)
$ rsync -av -e ssh /home/user/source/ user@remote:/backup/
同期先で削除されたファイルをローカルでも削除
$ rsync -av --delete /home/user/source/ /home/user/backup/
特定のファイルを除外する
$ rsync -av --exclude "*.log" /home/user/source/ /home/user/backup/
rsyncの代表的なオプション
-a
:アーカイブモード(複数オプションをまとめたもの)-v
:進行状況を表示-z
:転送中に圧縮--delete
:同期元に無いファイルを削除--exclude
:指定パターンのファイル・ディレクトリを除外-n
:テストモード(実際には実行せず動作確認)
活用例
ホームディレクトリの定期バックアップ(cronと併用)
$ crontab -e
0 2 * * * rsync -a --delete /home/user/ /mnt/backup/user/
差分バックアップスクリプト例
#!/bin/bash
SRC="/home/user/"
DEST="/mnt/backup/user/"
rsync -a --delete "$SRC" "$DEST"
まとめ
rsync
は、Linuxでのバックアップ・同期処理の定番ツールとして広く利用されています。差分のみを効率よく転送でき、ネットワーク帯域の節約やバックアップの高速化に優れています。ローカル環境はもちろん、SSHを使ったリモートバックアップにも対応しており、柔軟性と信頼性の高さが特長です。
日常的なデータ保護から、システム間の同期運用まで、あらゆるシーンで活躍するツールです。