rsync を用いたバックアップ

この記事では、ファイルやディレクトリの同期・バックアップに広く使われているコマンドラインツール `rsync` について解説します。`rsync` は、差分転送アルゴリズムにより、変更があった部分のみを効率的に転送する点が特徴です。ここでは、SSH を利用した安全なリモートサーバーへの基本的なバックアップ方法に焦点を当てます。

事前準備

`rsync` を SSH 経由でリモートマシンにバックアップを行うためには、以下の情報を事前に確認・準備しておく必要があります。

補足:

基本的なリモートバックアップ手順

転送元パスの末尾スラッシュ(`/`)について

以下のコマンドは、指定したローカルディレクトリの内容を、SSH を経由してリモートマシンの指定ディレクトリに同期(バックアップ)する基本的な例です。

sudo rsync -avz --delete -e ssh <バックアップしたいディレクトリ>/ <ユーザ名>@<IPアドレス>:<バックアップ用のディレクトリ>

コマンド解説:

プレースホルダーについて:

更新日時が新しいファイルのみバックアップする手順

`find` コマンドと組み合わせることで、特定の条件に一致するファイルのみを `rsync` でバックアップする応用例です。以下のコマンド例は、`/home` ディレクトリ内で過去30日以内に更新されたファイルのみを抽出し、ローカルの `/backup` ディレクトリにバックアップします。

cd /home && find . -mtime -30 -type f -print0 | rsync -avz --delete --files-from=--from0 /home /backup

コマンド解説:

注意点:

セキュリティに関する推奨事項:

`rsync` を `-e ssh` で利用する場合、パスワード認証ではなく、より安全な SSH 公開鍵認証 を設定することを強く推奨します。これにより、パスワードの漏洩リスクを低減でき、パスワード入力が不要になるためスクリプトによるバックアップの自動化も容易になります。