2026年5月20日
2026年5月20日
rsyncでリモートサーバーにバックアップする方法
はじめに
この記事では、Linuxサーバー運用において重要なバックアップ手法であるrsyncを使用して、リモートサーバーにファイルやディレクトリを定期的にバックアップする方法について解説します。rsyncは高速で効率的なデータ同期ツールであり、大量のデータを転送する際に特に有用です。
症状・背景
rsyncを使用してリモートサーバーにバックアップを行う必要が生じる主な場面は以下の通りです:
- サイトやアプリケーションの定期的なバックアップ
- ホスティングサービスからのファイル転送
- 一時的にデータを別のサーバーに保持する
手順・設定方法
ステップ1: rsyncの基本操作
# ローカルのディレクトリからリモートサーバーへファイルを同期します。
rsync -avz /path/to/local/directory user@remote.server:/path/to/remote/directory
# ここで、-aはアーカイブモード(再帰的にコピーし、シンボリックリンクもコピー)、
# -vは詳細情報を表示、-zは圧縮して転送します。
ステップ2: 主要オプション/設定
# 時間の経過とともにファイルが増えていくディレクトリを定期的にバックアップする場合は、--link-destオプションを使用します。
rsync -avz --link-dest=/path/to/last/backup /path/to/local/directory user@remote.server:/path/to/remote/directory
# このオプションにより、既に存在するファイルはシンボリックリンクとして参照されるため、転送量を大幅に減らすことが可能です。
ステップ3: 应用/組み合わせ
# rsyncには複数のサーバー間でデータを同期する機能もあります。以下のように指定します。
rsync -avz /path/to/local/directory user1@remote.server:/path/to/remote/directory && rsync -avz /path/to/local/directory user2@another.server:/path/to/remote/directory
# これは一連のコマンドを並列に実行することで、異なるサーバー間でデータを同期することができます。
ステップ4: 実践/トラブルシュート/監視
# 転送が完了した場合やエラーが発生した場合にも通知を受けたい場合は、メールアラートを設定します。
rsync -avz --info=progress2 /path/to/local/directory user@remote.server:/path/to/remote/directory | mail -s "RSYNC BACKUP COMPLETE" admin@example.com
# また、定期的なバックアップ実行スクリプトを作成することも推奨されます。
#!/bin/bash
rsync -avz --info=progress2 /path/to/local/directory user@remote.server:/path/to/remote/directory
注意事項
- rsyncはネットワーク状況によって転送速度が変わるため、大規模なデータ同期には十分な帯域幅を確保すること。
- 定期的なバックアップスクリプトを作成する際は、スクリプトの実行権限と所有者に注意。必要であればroot権限が必要となる場合もあります。
- セキュリティ上の観点から、rsyncコマンドを実行するユーザーには最小限のアクセス権限だけを与えることが重要です。
まとめ
1. rsync: Linuxサーバー間での効率的なデータ同期ツールです。高速で、大量のファイル転送でも重宝します。
2. --link-dest: 同期元ディレクトリと比較して新規または変更されたファイルのみを転送するオプションです。
3. メールアラート: バックアップ結果やエラー通知をメールで受け取ることができます。
4. 定期的なスクリプト作成: 一貫性のあるバックアップシステムを作るために重要なステップです。
関連記事: