Backupninja
Last updated on September19,2020by Gabriel Cánepa
災害による慎重さや経験は、すべてのシステム管理者に頻繁なシステムバックアップを取ることの重要性を教えることができます。 これを行うには、古き良きシェルスクリプトを書くか、ジョブに利用可能な多くのバックアップツール(Clonezilla、Duplicityなど)の一つ(または複数)を使用します。 したがって、より多くのツールを使用すると、バックアップソリューションを実装するときに、より良い情報に基づいた意思決定を行うことができます。
この記事では、軽量で構成が簡単なシステムバックアップツールであるBackupninja
を紹介します。 のようなプログラムの助けを借りてrdiff-backup
, duplicity
, mysqlhotcopy
また、mysqldump
では、backupninjaは、リモート、セキュア、増分ファイルシステムバックアップ、暗号化バックアップ、MySQL/MariaDBデータベースバックアップなどの一般的なバッ ステータスメールレポートを選択的に有効にすることができ、一般的なハードウェアおよびシステム情報もバッ Backupninjaの重要な強みの一つは、さまざまなバックアップシナリオの構成ファイルを簡単に作成できる組み込みのコンソールベースのウィザード(ninjahelper
と呼ばれます)です。
欠点は、いわば、Backupninjaは、そのすべての機能を最大限に活用するために、他のヘルパープログラムをインストールする必要があるということです。 BackupninjaのRPMパッケージはRed Hatベースのディストリビューションで利用できますが、Backupninjaの依存関係はDebianとその派生物用に最適化されています。 したがって、Red HatベースのシステムではBackupninjaを試すことはお勧めしません。
このチュートリアルでは、DebianベースのディストリビューションのBackupninjaインストールについて説明します。
Backupninjaのインストール
rootで次のコマンドを実行します:
# aptitude install backupninja
インストール中に、いくつかのファイルとディレクトリが作成されます:
-
/usr/sbin/backupninja
はメインのbashシェルスクリプトです。 -
/etc/cron.d/backupninja
, デフォルトでは、cron
にメインスクリプトを1時間に1回実行するように指示します。 /etc/logrotate.d/backupninja
/etc/backup.d/
は、バックアップアクションの構成ファイルが存在するディレクトリです。/etc/backupninja.conf
は、一般的なオプションを含むメインの設定ファイルです。 それはよくコメントされ、詳細に各オプションを説明しています。/usr/share/backupninja
は、Backupninjaによって使用されるスクリプトが置かれているディレクトリ(別名ハンドラー)です。 これらは、実際の作業を担当するスクリプトです。 このディレクトリには、ninjahelper
メニューの設定と設定に使用される.helper
ファイルもあります。/usr/share/doc/backupninja/examples
には、アクション設定ファイル(ninjahelper
で作成されるファイルの種類)のテンプレートが含まれています。
ninjahelperを初めて実行
ninjahelper
を起動しようとすると、内部依存関係が必要になる可能性があります。 プロンプトが表示されたら、yes
と入力し、ENTER
キーを押してdialog
(シェルスクリプトから使いやすいダイアログボックスを表示するツール)をインストールします。
yesと入力した後にEnterキーを押すと、Backupninjaがインストールダイアログを表示し、完了すると次の画面が表示されます。
例1:ハードウェアとシステム情報のバックアップ
ninjahelper
を起動した後、新しいバックアップアクションを作成します:
必要なヘルパープログラムがインストールされていない場合は、以下の画面が表示されます。 これらのパッケージが既にシステムにインストールされている場合は、この手順を無視してください。
次のステップは、このバックアップの一部になりたい項目を選択することからなります。 最初の4つはデフォルトで選択されていますが、スペースバーを押して選択を解除することができます。
完了したら、OKを押して続行します。 このバックアップアクションにデフォルトの構成ファイルを使用するか(/etc/backup.d/10.sys
)、または新しい構成ファイルを作成するかを選択できます。 後者の場合、デフォルトのファイルと同じ内容の新しいファイルが同じディレクトリの下に作成されますが、11.sys
という名前が付けられます。 設定ファイルは、お好みのテキストエディタで作成した後で編集できます。
例2: リモートディレクトリの増分Rsyncプルバックアップ
ご存知のように、rsync
はネットワーク経由でファイルやフォルダを同期するために広く使用されています。 次の例では、履歴データを保存してローカルファイルサーバーに保存するために、ハードリンクを使用してリモートディレクトリの増分プルバックアップアプ このアプローチは、スペースを節約し、サーバー側のセキュリティを向上させるのに役立ちます。
ステップ1:カスタムスクリプトを/etc/backup.d
ディレクトリに次の内容で記述し、chmod
を600
に記述します。 このディレクトリには、普通の設定ファイルのほかに、Backupninjaの実行時に実行したいスクリプトが含まれていることに注意してください。
# REMOTE USERuser=root# REMOTE HOSThost=dev1# REMOTE DIRECTORYremotedir=/home/gacanepa/# LOCAL DIRECTORYlocaldir=/home/gacanepa/backup.0# LOCAL DIRECTORY WHERE PREVIOUS BACKUP WAS STOREDlocaldirold=/home/gacanepa/backup.1mv $localdir $localdirold# RSYNCrsync -av --delete --recursive --link-dest=$localdirold $host:$remotedir $localdir
上記の設定では、rsync
の--link-dest
オプションは、$localdir-old
から宛先ディレクトリ($localdir
)に変更されていないファイル(すべての属性)をハードリンクするために使用されます。ステップ2:Backupninjaを初めて実行する前に、親ディレクトリ(この場合は/home/gacanepa
)は空です。 私たちが最初に実行したとき:
# backupninja -n
backup.0
ディレクトリが作成され、後でその名前がbackup.1
に変更されます。
Backupninjaを2回目に実行すると、backup.0
が再作成され、backup.1
が保持されます。
ステップ3:それぞれのinode番号とディレクトリサイズを比較して、backup.1
の内容がbackup.0
内のファイルへのハードリンクであることを確認します。
結論
Backupninjaは、古典的なバックアップツールだけでなく、設定が簡単なユーティリティです。 /etc/backup.d
にある個々の設定ファイルに従ってBackupninjaを実行するための独自のハンドラを書くことができ、ninjahelper
のヘルパーを書くこともできます。
たとえば、/usr/share/backupninja
にxmodulo
という名前のハンドラを作成すると、/etc/backup.d
に.xmodulo
という拡張子を持つすべてのファイルがデフォルトで実行されます。 xmodulo
ハンドラをninjahelper
に追加する場合は、対応するヘルパーをxmodulo.helper
と書くことができます。 さらに、Backupninjaに任意のスクリプトを実行させたい場合は、それを/etc/backup.d
に追加するだけで十分です。 カスタムバックアップ計画の作成の詳細については、このBackupninjaチュートリアルを参照してください。