開発運用

Ubuntuバックアップ方法

Ubuntuサーバーでのバックアップは、システムの可用性とデータの保護に不可欠です。バックアップは、障害やデータ損失が発生した場合に迅速に復旧できるようにするための重要なステップです。この記事では、Ubuntuでの完全なバックアップ方法を詳述します。ここでは、ファイルシステム、データベース、アプリケーションの設定など、あらゆる重要な部分をバックアップする方法について説明します。

1. Ubuntuバックアップの基本概念

バックアップにはいくつかの種類がありますが、最も一般的なのは次の3つです:

  • フルバックアップ:システム全体をコピーします。これは最も安全ですが、ストレージ容量を多く消費します。
  • 増分バックアップ:前回のバックアップ以降に変更された部分だけをバックアップします。これによりストレージ容量を節約できますが、復旧には前回のバックアップと増分バックアップが必要です。
  • 差分バックアップ:最初のフルバックアップ以降に変更されたすべてのデータをバックアップします。増分バックアップと異なり、差分バックアップは前回のフルバックアップのみを参照するため、復旧が比較的簡単です。

2. Ubuntuバックアップツールの選定

Ubuntuにはバックアップツールがいくつかあります。ここでは、代表的なツールを紹介します。

  • rsync:最も広く使用されているコマンドラインツールで、ディレクトリの同期とバックアップを行います。ローカルバックアップだけでなく、リモートサーバーへのバックアップにも使用できます。
  • Timeshift:システムのスナップショットを作成し、システムの復元を容易にするツールです。特にデスクトップ環境で人気があります。
  • Deja Dup:Ubuntuのデスクトップ環境で使用できるGUIベースのバックアップツールで、クラウドストレージやローカルバックアップをサポートしています。
  • Bacula:大規模なバックアップを管理するためのエンタープライズ向けソリューションです。設定はやや複雑ですが、強力なバックアップと復元機能を提供します。

3. rsyncを使用したバックアップ

rsyncは、非常に効率的で柔軟なバックアップツールです。以下は、rsyncを使用してUbuntuサーバーのバックアップを作成する基本的な手順です。

a) 基本的なrsyncコマンドの使い方

rsyncを使うと、ローカルとリモートの両方にバックアップを作成できます。以下のコマンドは、ローカルのディレクトリをバックアップする例です。

bash
rsync -avz /path/to/source /path/to/destination
  • -a はアーカイブモードで、シンボリックリンクやパーミッションを保持しながらコピーします。
  • -v は冗長モードで、進行状況を表示します。
  • -z は圧縮を有効にします。

b) リモートバックアップ

リモートサーバーにバックアップを作成する場合、次のようにします。

bash
rsync -avz /path/to/source user@remote_host:/path/to/destination

このコマンドは、リモートサーバーへのバックアップを作成します。user@remote_host はリモートサーバーのユーザー名とホスト名(またはIPアドレス)です。

c) 増分バックアップの作成

増分バックアップを行う場合は、--link-dest オプションを使用して、前回のバックアップとの差分をバックアップします。

bash
rsync -avz --link-dest=/path/to/previous_backup /path/to/source /path/to/current_backup

これにより、変更されたファイルのみが新しいバックアップに追加されます。

4. Timeshiftを使用したバックアップ

Timeshiftは、Ubuntuのシステム全体のスナップショットを作成し、システムの復元を容易にするツールです。Timeshiftは特に、システム設定やパッケージの変更を追跡するのに便利です。

a) Timeshiftのインストール

Timeshiftをインストールするには、以下のコマンドを実行します。

bash
sudo apt install timeshift

b) Timeshiftの使用

インストール後、次のコマンドでTimeshiftを実行できます。

bash
sudo timeshift --create

これでシステムのスナップショットが作成されます。GUIを使用する場合は、timeshift-launcher コマンドでTimeshiftを起動できます。

c) スケジュール設定

Timeshiftは、スナップショットの作成スケジュールを設定できます。例えば、毎日、自動的にバックアップを取るように設定できます。

bash
sudo timeshift --schedule daily

5. データベースのバックアップ

データベースのバックアップは、システム全体のバックアップとは別に考慮する必要があります。ここでは、MySQL/MariaDBとPostgreSQLのバックアップ方法を紹介します。

a) MySQL/MariaDBのバックアップ

MySQLやMariaDBのデータベースのバックアップを作成するには、mysqldumpを使用します。

bash
mysqldump -u root -p database_name > /path/to/backup.sql

このコマンドは、指定したデータベースのバックアップを作成し、SQLファイルとして保存します。

b) PostgreSQLのバックアップ

PostgreSQLでは、pg_dumpコマンドを使用します。

bash
pg_dump database_name > /path/to/backup.sql

これにより、指定したデータベースのバックアップが作成されます。

6. クラウドバックアップ

クラウドストレージを利用して、バックアップを保存することも可能です。以下は、Google DriveやDropboxを使ったバックアップ方法の一例です。

a) Google Driveのバックアップ

Google Driveを使用するには、rcloneをインストールして設定します。インストール後、次のようにGoogle Driveにバックアップをアップロードできます。

bash
rclone copy /path/to/source remote:backup_folder

b) Dropboxのバックアップ

Dropboxを使用する場合も、rcloneを使ってバックアップを行うことができます。設定後、次のようにバックアップを作成します。

bash
rclone copy /path/to/source dropbox:/backup_folder

7. バックアップの自動化

バックアップを自動化するには、cronジョブを使用します。例えば、毎日午前2時にrsyncを使用してバックアップを作成するには、次のように設定します。

bash
crontab -e

そして、次の行を追加します。

bash
0 2 * * * rsync -avz /path/to/source /path/to/destination

8. バックアップの復元

バックアップを復元する際は、使用したバックアップツールに応じて復元方法が異なります。rsyncを使用してバックアップを復元する場合、次のコマンドを実行します。

bash
rsync -avz /path/to/backup /path/to/restore

Timeshiftを使用してシステムを復元するには、次のコマンドを使用します。

bash
sudo timeshift --restore

9. まとめ

Ubuntuサーバーでのバックアップは、システムの安定性とデータ保護のために不可欠です。バックアップ方法として、rsync、Timeshift、データベースのバックアップ、クラウドバックアップなどを組み合わせることで、データ損失を防ぎ、迅速に復旧できるように準備を整えることができます。バックアップは定期的に実行し、必要に応じて自動化することが重要です。また、バックアップの復元手順を事前に確認しておくことも、万が一の際に役立ちます。

Back to top button