Easy-Backup

Easy-Backup は、BlueOnyx-Shop で提供されている BlueOnyx 向けの商用製品です。Vsite、ユーザー、DNS、SQL、メール、各種設定など、重要なデータを簡単にバックアップおよび復元できるようにします。Easy-Backup は CLI コマンド(/usr/sausalito/sbin/easy-backup)と、既存の BlueOnyx GUI に密接に統合された GUI で構成されています。

ご注意: Easy-Backup は旧製品「Automated Backup」の後継です。 以前に「Automated Backup」を購入されたお客様は、Easy-Backup の公開日(2023-08-30)より前にサポート期限が切れていなければ、Easy-Backup を紐付けてインストールできます。それ以前にサポートが失効している場合は、利用可能製品として旧「Automated Backup」のみが表示されます。

どのように動作するのですか?

Easy-Backup は、ユーザーのデータと設定を取得・転送するために「Easy-Migrate」とよく似た仕組みを使います。ただし、CCE の set トランザクションで設定を直接転送し、RSYNC でデータを送る代わりに、エクスポート用のデータセットを生成します。設定は JSON ファイルとして、Vsite・ユーザー・DNS・SQL のデータは tarball として保存されます。さらに、データ整合性を確認するためのチェックサムファイルも作成されます。

このエクスポートデータセットは、Linux の「Duplicity」を使ってリモートマシンへバックアップされます。Duplicity は SSH、SCP、RSYNC、FTP、FTPS、SFTP など複数のプロトコルに対応しています。SSHfs、Samba、NFS、および一部の「クラウド」(AWS、Azure、Dropbox、MegaNZ、Google Drive)も理論上は利用可能ですが、運用上の複雑さを避けるため実装していません。

Duplicity はフルバックアップに加えて増分バックアップも扱えるため、世代管理を比較的省スペースで行えます。フルバックアップと増分の整理や再構成を自分で管理する負担も軽減され、保持したい世代数に達した際の整理もかなり楽になります。

増分バックアップを選択した場合は、最新のバックアップだけでなく、過去の任意の増分からも復元できます。たとえば 7 日分のバックアップがあれば、その 7 日間のいずれの時点の状態にも戻せます。

GUI 統合:

「サーバー管理」 / 「メンテナンス」 / 「Easy-Backup」 で、バックアップの実行時刻や保存先を設定できます。

003-Server1

上の画像の下部には、Vsite の siteAdmin と一般ユーザーに対して Easy-Backup をどのように利用可能にするかを決める 4 つのオプションがあります。

Show Backup-List

siteAdmin とユーザーに、利用可能なバックアップ一覧を表示するかどうかを定義します。表示しない設定にもできます。

Allow Remote Restore

siteAdmin やユーザーが、リモートバックアップサーバー上のデータを使って復元を開始できるかを定義します。これを有効にすると、リモート保存先に接続し、選択した世代のバックアップに合わせてローカルのバックアップ保存領域を同期します。そのため、バックアップサーバーと BlueOnyx の間で大量のデータ転送が発生する可能性があります。これを避けたい場合は無効にしてください。この機能を無効にしても siteAdmin やユーザーに復元権限を与えることは可能ですが、その場合はローカルに存在するバックアップのみが復元対象になります。つまり、最後にエクスポートされたバックアップセットからのみ復元できます。

Allow siteAdmins to restore

有効にすると、すべての siteAdmin が、自分の Vsite やそのユーザーをバックアップから復元できるようになります。ただし、上記「Allow Remote Restore」で定義した制約が適用されます。

Allow User Restore

Vsite の siteAdmin ではない個別ユーザーに対して、自分のアカウントや設定をローカルまたはリモートのバックアップから復元する権限を与えるかどうかを定義します。ここでも「Allow Remote Restore」の制約が適用されます。

バックアップの保存

エクスポートはまずローカルディレクトリに作成され、その後指定したリモート保存先に転送されます。必要であれば、転送成功後にローカルのバックアップを削除することもできます。毎回フルバックアップを行うことも、既定の増分バックアップを使うことも可能です。容量節約の観点からは増分方式を推奨します。また、何日分のバックアップを保持するかも指定できます。

「Backup-Status」タブでは、過去のバックアップ実行状況を確認できます。いつバックアップが行われたかだけでなく、それがフルバックアップだったのか増分だったのかも分かります。

「Restore Vsites」タブでは、ローカルまたはリモートのバックアップから、全 Vsite または選択した Vsite を復元できます。たとえサーバーを再インストールしたとしても、Easy-Backup を入れ直してリモート保存先に接続すれば、再び復元できます。「Poll Backup Vsite List」を押すとリモート保存先に接続し、外部保存されたバックアップに含まれる Vsite の一覧を表示します。そこから最新バックアップか古い世代かを選び、復元したい Vsite を指定できます。

復元したい Vsite にチェックを入れて保存すれば、リモートバックアップからの復元が始まります。リモートバックアップが設定されていない場合は、ローカルバックアップ(存在する場合)を使います。

多数の Vsite や非常に大きな Vsite の復元は、GUI よりコマンドラインの方が適している場合があります。使用するコマンドは次のとおりです。

/usr/sausalito/sbin/easy-backup --restore --vsites all

これにより、リモートバックアップ(設定されている場合)またはローカルバックアップ(存在する場合)から、すべての Vsite とそのユーザー、関連データ、設定を復元します。もちろん、特定の Vsite だけを復元したり、インポート時に別の IP アドレスを割り当てることもできます。

/usr/sausalito/sbin/easy-backup --restore --vsites www.blueonyx.it,support.blueonyx.it --ip 208.77.151.215

上記は指定した 2 つの Vsite のみを復元し、コマンドラインで指定した IP アドレスを割り当てます。

GUI から開始した復元処理が完了すると、コマンドラインで実行された処理結果も表示されます。表示例は下のようになります。

008-Server-Restore-DNE

 また、エラーが発生した場合も、そのレポートと復元処理中に発生したエラー内容が表示されます。

管理者向けの追加 Easy-Backup GUI ページ

siteAdmin や一般ユーザーに自力での復元権限を与えていなくても、サーバー管理者であれば常に自分で復元を実行できます。たとえば各 Vsite の「サイト管理」 / <Vsite> / 「メンテナンス」 / 「Easy-Backup」では、「Restore Vsite」をクリックして、その Vsite 全体とそのユーザー(SQL データベースや DNS 設定も含む)を最新または過去のバックアップセットから復元できます。

009-Vsite1

同様に、特定ユーザーだけをある時点のバックアップ状態へ戻したい場合は、Vsite のユーザー一覧で対象ユーザーを選び、「Restore User」にチェックを入れます。必要なら「Restore Age」を変更して、より古いバックアップからそのユーザーだけを復元することもできます。

010-Vsite-User

もちろん、これはユーザーがまだ存在している場合に限ります。ユーザーが意図的または誤って削除されている場合、そのユーザーの復元はコマンドラインからのみ可能です。

/usr/sausalito/sbin/easy-backup --restore --user <username> --age 5

このコマンドは、5 日前に作成されたバックアップセットからユーザー <username> だけを復元します。最新バックアップから復元したい場合は、もちろん --age スイッチを省略します。Easy-Backup はそのユーザーがどの Vsite に属していたかを認識しているため、自動的に正しい Vsite に復元されます。

siteAdmin / 一般ユーザー向け画面

権限が与えられていれば、siteAdmin や一般ユーザーも自分のデータや設定をバックアップから復元できます。以下はその画面例です。基本的な形式は管理者向けと同じですが、利用可能バックアップ一覧の表示や、リモートバックアップからの復元可否は権限設定により異なる場合があります。

siteAdmin が Vsite 全体を復元する画面:

013-siteAdm

siteAdmin が自分のアカウントを復元した直後の画面:

016-siteAdmPersonalRestoreDNE

コマンドラインでの利用

サーバー管理者であれば、もちろん「root」としてコマンドラインから Easy-Backup の全機能を利用できます。

[root@5211r ~]# /usr/sausalito/sbin/easy-backup --help
┌─────────────────────────────────────────────────────────┐
│                   Easy-Backup v1.1.5                    │
│       Easily Backup and Restore BlueOnyx Servers        │
│                                                         │
│ Copyright (c) 2008-2025 Michael Stauber, SOLARSPEED.NET │
│       Proprietary Software - All Rights Reserved        │
└─────────────────────────────────────────────────────────┘

usage:     easy-backup.pl [OPTIONS]

Example backup:  ./easy-backup.pl --backup  --vsite all --admins
Example restore: ./easy-backup.pl --restore --vsite all

   --backup        Use this to perform a backup.
   --restore       Use this to restore a backup. Will restore the latest backup, unless
                   you want to restore an older backup. In that case add the --age switch
                   and specify the number of days to go back in the backup-set.
                   want to go back in the backup-set in case you want to restore a backup
                   older than the latest one. 
   --age           Only use this in conjunction with the --restore switch. Add a number to
                   specify how many days you want to go back in the backup-set to restore
                   an older backup.
   --dir           Overrides local storage directory, which is specified in the config file.
   --config        Exports or restores service and system settings such as Email, DNS,
                   Apache, PHP, Nginx, Vsite- and User-defaults, SNMPd, Sitestats and
                   Support settings. It will NOT touch the SSH or AdmServ settings 
                   for security reasons.
   --list          Human readable list of Vsites present in a backup dump stored in 
                   the backup directory specified via the --dir switch.
   --remotelist    Human readable list of Vsites present in the remotely store backup.
   --ip            IPv4 IP Address that newly restored Vsites should get on import.
   --ipv6          IPv6 IP Address that newly restored Vsites should get on import.
   --nodns         If Vsites are restored, the we will not import their DNS records.
   --dnsonly       Restore only the DNS records, but nothing else.
   --mysql         Only restore all MySQL databases and users, but nothing else.
   --vsite         To only backup or restore import a single Vsite specify  
                   --vsite www.domain.com. To backup or restore multiple Vsites
                   specify --vsite www.domain1.com,www.domain2.com. To backup or
                   restore all Vsites and Users use --vsite all
   --admins        Will export/import all server administrator users as well. 
                   User 'admin' and 'alter-admin' will be exported, but for security
                   reasons the import of their accounts is not supported.
   --user          Allows to restore a single user account from the backup set. 
                   The Vsite he belongs to must already exist. 
                   Example: --restore --user john_doe. 
   --check         If remote backup is configured, you can use this option to check
                   the status and availability of your remote backups.
   --prune         If incremental remote backup is configured, you can use this option
                   to attempt to trim the backup set down to the desired retention days.
   --unlock        Allows to unlock 'easy-migrate' if a restore lock was left as set.
   --license       Show the software license of this script.
   --version       Show Version of this script.
   -h|--help       This help text

Easy-Backup コマンドは GUI が作成する設定ファイル /etc/easy-backup.conf を読み込みます。そこには、ローカル保存先ディレクトリ(既定: /home/easy-backup)、リモート保存先サーバー、使用するユーザー名、転送プロトコルなどの情報が含まれています。

利用可能なプロトコル:

  • ftp(パスワード必須)
  • ftps(パスワード必須)
  • rsync(SSH 経由。SSH 鍵交換が必要)
  • scp(SSH 経由。SSH 鍵交換済みならパスワード不要)
  • sftp(SSH 経由。パスワード必須)

推奨は SCP または RSYNC です。BlueOnyx 側の「root」と、リモート保存先サーバー上のバックアップ用ユーザーとの間で鍵交換を行ってください。その場合、GUI のリモート保存設定画面でパスワードを入力する必要がありません。その他の保存プロトコルでは、リモート保存先アカウントのパスワードを GUI に保存する必要があります。

サーバー全体のフルバックアップ:

~# /usr/sausalito/sbin/easy-backup --backup --admins

これにより、サーバー設定、すべての Vsite、ユーザー、DNS(DNS include ファイルを含む)、ユーザー cronjob、MySQL/MariaDB データベースとユーザー権限がバックアップされます。上記のように「--admins」を指定すると、サーバー管理者アカウントもエクスポート対象に含まれます。

SQL エクスポートに関する特記事項:

Vsite GUI 経由で SQL データベースが設定されている Vsite については、Easy-Backup が GUI の既存機構を呼び出し、通常 MySQL/MariaDB GUI が保存する場所へ SQL ダンプを書き出します。ただし、すべての SQL データベースや SQL ユーザーが Vsite に紐付いているとは限らないため、Easy-Backup は完全な SQL ダンプと、SQL ユーザー・パスワード・権限を含む privilege テーブルのエクスポートも行います。

データはまずローカル保存先に書き込まれ、リモート保存が有効かつ設定済みであれば、「duplicity」を使ってリモートバックアップサーバーへ転送されます。

バックアップからの復元:

次のコマンドは、バックアップからすべての server-admin(「admin」と「alter-admin」を除く)を復元します。

~# /usr/sausalito/sbin/easy-backup --restore --admins --vsite all

次のコマンドは、すべての Vsite とその設定、データ、ユーザー、さらに Vsite DNS と SQL(設定され、Vsite に紐付いている場合)を復元します。

~# /usr/sausalito/sbin/easy-backup --restore --vsite all

MySQL/MariaDB データベース全体と SQL ユーザー権限全体を復元するには、次を使用します。

~# /usr/sausalito/sbin/easy-backup --restore --mysql

すべての DNS レコード、設定、および DNS include ファイルを復元するには、次を使用します。

~# /usr/sausalito/sbin/easy-backup --restore --dnsonly

追加オプション:

--age

どの世代のバックアップセット(日数単位)から復元するかを指定します。

--config

サーバーおよび各種サービスの設定のみをエクスポートまたはインポートし、それ以外は扱いません。

--list

ローカルバックアップダンプに含まれる Vsite の一覧を人間向けに表示します。

--remotelist

リモートバックアップダンプに含まれる Vsite の一覧を人間向けに表示します。

--ip and --ipv6

 Vsite 復元時、元の IP をそのまま引き継ぐのではなく、ここで指定した IPv4 / IPv6 アドレスを使用します。

--nodns

インポート時に DNS 関連データを一切取り込みません。

--check

リモートバックアップが有効かつ設定済みの場合、保存済みバックアップの状態・可用性・整合性を確認できます。

--prune

増分バックアップを使用している場合、不要に肥大化したバックアップセットを整理できます。孤立した不完全なバックアップを除去し、最新フルバックアップより古いフルバックアップを削除し、古い世代の増分バックアップを削除し、可能であれば増分を最後のフルバックアップへ統合します。Easy-Backup は通常これを各バックアップ実行後に自動実行して後片付けを行いますが、必要であれば手動実行もできます。

--unlock

Easy-Backup CLI は、エクスポート、インポート、リモート保存先との同期などの処理を同時には実行できません。たとえば復元処理中に別のバックアップや復元は開始できません。そのため、これらの特権処理は先着順で実行され、干渉防止のため CODB にロックが設定されます。GUI から操作した場合も、Easy-Backup が忙しいと案内され、後で再試行するよう求められます。コマンドラインから 2 つの Easy-Backup プロセスを起動した場合、最初のものがロックを取得し、後続は待機状態(最大 90 分)に入り、ロック解除を確認しながら待ちます。

ただし、処理が中断または強制終了された場合、ロックが残ることがあります。Easy-Backup CLI には古いロックを期限切れとして自動解放する仕組みがありますが、必要であれば --unlock コマンドで強制解除も可能です。ただし、他の Easy-Backup プロセスが動作中でない場合に限られます。

技術的な補足

CMU と比べるとどうですか?

簡潔に言えば、Easy-Backup CLI だけを見ても 「20 年以上の澱や古い癖を抱えていない、強化版 CMU」 です。

さらに GUI が加わることで、これまでになかったレベルの使い勝手が実現されています。

リモートバックアップを Duplicity で増分保存できる点も大きな利点です。GUI から、もちろんコマンドラインからも復元でき、siteAdmin やユーザー自身でも扱えます。

BlueOnyx バージョン間のバックアップ互換性は?

Easy-Backup は BlueOnyx 5209R、5210R、5211R をサポートします。これら対応プラットフォームのいずれかで作成した Easy-Backup エクスポートは、同一プラットフォームだけでなく、他の対応 BlueOnyx プラットフォームにもインポートできます。

BlueOnyx バージョン間の移行にも使えますか?

はい。 旧 BlueOnyx(5209R または 5210R)から簡単にバックアップを取り、そのバックアップセットを BlueOnyx 5211R にインポートできます。Easy-Backup は、古い BlueOnyx から新しい BlueOnyx への移行でも、その逆方向でも、必要な調整を自動的に行います。ターゲットサーバーをリモート保存先へ向け、最新バックアップをインポートするだけです。

無料の Easy-Migrate と比べてどうですか?

Easy-Migrate(BlueOnyx に無償同梱)は、ソースサーバーからターゲットサーバーへ設定、Vsite、ユーザー、DNS、SQL、データをオンライン移行することを主目的として設計されました。Easy-Migrate はその役目を非常によく果たします。しかし移行後には、ターゲットサーバーの IP に合わせて DNS を切り替えるか、ターゲットサーバーや移行済み Vsite の IP を元に戻す必要があり、多数の Vsite があると手間になります。

Easy-Backup は Easy-Migrate の多くの仕組みとコードを活用しながら、完全または増分のバックアップダンプを作成します。そのため、エクスポート後に旧サーバーを停止し、新サーバーでそのダンプをインポートするだけで済み、後処理は大幅に少なくなります。

さらに言えば、Easy-Backup は Easy-Migrate より堅牢で、いくつかの点で少し優れています。実際、Easy-Backup の開発中に Easy-Migrate の既存コードを再利用する過程で、Easy-Migrate 側のさまざまな不具合も見つかりました。その多くは修正済みですが、まだ保留中のものもあります。Easy-Backup は Easy-Migrate の約 2 倍のコード量(およそ 5000 行の Perl)を持ち、多数のチェックと安全策を組み込んでいます。たとえばファイル/プロセスロック、UTF-8 での確実なエクスポート、すべてのエクスポートファイルへの SHA256 チェックサム、インポート前の整合性確認、さらに新しい SQL サーバーから古い SQL サーバーへでも取り込める MySQL/MariaDB エクスポート/インポート方式などです。そのため、極端な話として 5211R から 5209R への逆移行さえ可能であり、その場合でも SQL データベースとユーザー権限を正しく復元できます。

Easy-Backup に投入したコードの複雑さと完成度へのこだわりは相当なもので、正直に言えば、開発中の挫折や遅延に気力を削がれた時期もありました。CLI のエクスポート/インポート機能は一時 98% ほど完成しており、残っていたのは DNS インポートルーチンのいくつかの修正だけでした。そこだけ見れば「十分」と言えたかもしれませんが、そこで止めませんでした。さらに約 300 時間を投じ、堅牢で可能な限り完成度の高いものに仕上げました。GUI の作成にも、5212R、5211R、5210R、5209R で内部実装がかなり異なるため、実質的に 3 系統分でさらに 230 時間を要しました。

また Easy-Backup の GUI を構築する過程で、BlueOnyx 5209R、5210R、5211R、5212R の既存 GUI コードにも多くの小さな問題点や改善余地を見つけ、修正しました。中には純粋なバグ修正もあれば、5212R / 5211R の機能や内部 GUI 関数を 5210R / 5209R 側へ移植したものもあります。たとえば新しい ACL の一部や、エラーメッセージ処理における PHP セッション利用などです。

要するに、Easy-Backup は「ステロイド入り Easy-Migrate」であり、まったく新しい段階に入った製品です。新しい BlueOnyx プラットフォームへの移行を容易にするだけでなく、安全な場所に複数世代のバックアップを保持し、いざというときに容易に復旧できるようにします。さらに、ユーザーや siteAdmin が頻繁に自分のサイトを壊してしまうような環境でも、GUI から自分で復旧できるようになります。