Linuxでrsyncを使って効率的なバックアップを行う方法
背景
Linuxの運用では、サーバーやPC上のデータを安全に保管するためのバックアップは不可欠です。定期的なコピーやtarアーカイブでもバックアップはできますが、データサイズが大きかったり、変更点が少ない場合は全体をコピーするのは非効率です。そんなときに便利なのがrsyncです。rsyncは差分を検出して転送するため、変更箇所のみをコピーし高速に同期できるツールです。ネットワーク越しのホスト間でも利用でき、SSHと組み合わせれば安全にデータを同期できます。
手順
- rsyncの基本的な使い方を理解する
rsyncはパッケージ管理システムでインストールできます。Ubuntuならsudo apt install rsyncで導入します。基本的な構文はrsync [オプション] 送信元 送信先です。ローカルディレクトリ間のコピーも、リモートホストとの同期も同じコマンドで行えます。 - 差分バックアップの実行
たとえばホームディレクトリのドキュメントを外付けディスクにバックアップしたい場合、rsync -avh --delete ~/Documents/ /mnt/backup/Documents/とします。このコマンドはディレクトリ内容を再帰的にコピーし、更新日時やパーミッションも保持します。--deleteオプションは送信元から削除されたファイルをバックアップ先からも削除するため、完全なミラーリングが行えます。 - SSH経由でリモートバックアップ
リモートサーバーにバックアップを取りたい場合は、送信先に[email protected]:/path/to/backup/のように指定します。例えばrsync -avz ~/projects/ [email protected]:/srv/backup/projects/とすると、ローカルのprojectsディレクトリを圧縮転送しつつ同期します。SSHキー認証を使えば安全かつ自動でバックアップが可能です。 - cronで定期的に実行
手動でバックアップコマンドを実行するのは大変なので、cronジョブに登録すると便利です。crontab -eを開き、例えば毎日深夜2時にバックアップを実行する場合は0 2 * * * rsync -avh --delete ~/Documents/ /mnt/backup/Documents/と記述します。cronに登録しておけば、定期的に差分バックアップが行われます。 - 排他制御とログ管理
長時間の同期や複数ジョブの競合を避けるために、flockコマンドと組み合わせて同時実行を防ぐことができます。また実行結果をログファイルに出力するように設定すれば、バックアップの成功・失敗を確認できます。
まとめ
rsyncは差分検出と効率的な転送を備えた強力なバックアップツールです。ローカル間のコピーはもちろん、SSHと組み合わせることで遠隔地のサーバーへの安全なバックアップも実現できます。オプションを上手に活用してディスク容量やネットワーク帯域を節約しながら、定期的なデータ保護を行いましょう.