Skip to main content

VPS: RsyncでLinuxサーバーのバックアップを作成する方法

このガイドは、以下の製品を使用して作成されました:

(詳細はプロバイダーごとの製品によって異なる場合がありますが、基本的な概念は同じです)

Rsyncについて:

バックアップはRsyncというツールで作成できます。
ローカルシステム内の別ディレクトリやドライブ、またはリモートシステムへコピー可能です。

データを別のローカルディレクトリやドライブにコピーする方法:

備考

注意:初回の実行はデータ量によってかなり時間がかかる場合があります。これは初回は全データを同期するためで、2回目以降は変更されたデータのみ同期されるためです。

つまり、増分バックアップが作成されます。

ステップ1

Rsyncは以下のコマンドでインストールできます:

apt install rsync

インストール後はすぐに使えます。

ステップ2

この例では、/homeのClientフォルダを/homeのBackupフォルダに同期します。

以下のコマンドで実行可能です:

rsync -arz /home/Client /home/Backup

-a=アーカイブモード、属性もコピー


-r=再帰的、サブフォルダも同期


-z=圧縮、データ量やサイズに応じて圧縮

フォルダは正常に同期されました。

もしClientフォルダ内のファイルなどを削除しても、Backupフォルダには残ったままです。
しかし、ファイルを常に1:1で同期したい場合は、rsyncコマンドを簡単に変更できます。
この変更により、Clientフォルダに存在しなくなったデータもBackupフォルダから削除されます。

変更後のコマンドは:

rsync -arz --delete /home/Client /home/Backup

-a=アーカイブモード、属性もコピー


-r=再帰的、サブフォルダも同期


-z=圧縮、データ量やサイズに応じて圧縮


--delete=ソースに存在しなくなったデータをターゲットから削除

ステップ3

コマンドを毎回手動で実行しなくて済むように、cronジョブに登録しましょう。
例えば、毎日午前3時にバックアップを作成する場合:

crontab -eを開きます:

数字の1で「nano」エディタが使えます。
数字の2で「vim」エディタが使えます。

nanoなどでファイルを開いたら、cronジョブを作成して入力します。
cronジョブはこのジェネレーターで簡単に作成可能です。

入力例は以下の通り:

0 3 * * * rsync --progress -arz --delete -e  "ssh -i /home/sshkey/keybackup" /home/Client/ root@123.123.123.123:/home/Backup/Home-Server1/ >/dev/null 2>&1

毎日午前3時にコマンドが実行され、バックアップが作成されます。