Linux / trixbox Proのボイスメールや録音音声をAmazon S3とJungleDiskでオンラインバックアップする方法
trixboxPro は設定情報をオンラインでバックアップする優れた機能を持っていますが、ボイスメールやその他の録音音声などのデータをオンラインでバックアップすること はできません。このドキュメントでは、Amazonのオンラインストレージサービスを使って、これらの音声データをオンラインでバックアップする方法を記 しています。
Amazon S3についての詳細は以下のサイトをご覧ください:
http://en.wikipedia.org/wiki/Amazon_S3
基 本的にはS3は、無制限の容量を誇るオンラインストレージサービスです。しかし、一般のストレージサービスと異なるのは、APIを通してのみ動作すると言 うことです。それで、アクセスする窓口をプログラムするか、JungleDiskのアプリケーションソフトウエアを使用してアクセスすることになります。 料金は、1GBのデータ転送に$0.10かかり、1GBのデータを保存しておくために、毎月$0.15の費用がかかります。例えば、あなたのパソコンから 6 GBのデータをオンラインで保存するためには、データをアップロードするために$0.60、そしてデータを保存しておくために毎月 $0.90の費用がかかるということです。
JungleDisk (www.jungledisk.com) はWindows、Mac、およびLinux (30日無料トライアル可能、購入は$20)で動作します。任意に指定したタイミングでデータをバックアップすることができます。
以下が具体的な手順です。
まず最初にAWSアカウントをAmazonで登録します。以下のサイトから登録できます: http://aws.amazon.com/s3.
サ インアップが完了すると、アクセスキーIDと、シークレットアクセスキーが通知されます。この情報を控えておいてください。続いて、JungleDisk をダウンロードしインストールします。以下のサイトからダウンロードできます。 http://www.jungledisk.com/desktop/download.aspx
USB Desktop Editionをダウンロードしてください。このバージョンはスタンドアロンの実行ファイルをUSBメモリに保存して、そこから起動できるようになってい ます。このバージョンは設定が容易で、コンフィギュレーションファイルを生成してくれるので、(jungledisk-settings.xml)これを 使って、Linuxからオンラインストレージにアクセスできるようにします。ファイルをダウンロードしたら、 junglediskmonitor.exeを起動します。JungleDiskモニターが開いて、システムトレイに常駐します。ダブルクリックして開い てください。そして、「configure」ボタンを押します。以下のような画面が表示されるはずです。:
画面左側に表示されている「Add bucket...」をクリックします。「Add a Bucket」画面が表示されるので、「Add Bucket」ボタンを押します。ここでAmazon S3のアカウント情報を入力する画面が表示されます:
Access Key IDとSecret Keyを入力してください。それから「Next」ボタンを押します。すると、既存のBucketを使用するか、新規にBucketを追加するか尋ねられま す。このbucketとは何でしょうか?それは、S3ファイルのコレクション名で、独立したファイルのセットのことです。もし、あなたがリセラーで、各顧 客に対して、バックアップを作成するサービスを行いたいなら、このbucketを各顧客に一つづつ作成できるでしょう。「Create a new bucket(新規にバケットを追加)」をクリックし、「Next」をクリックします。バケットの名前をつけるように促されますので、名前を入力し、 「Next」をクリックし、最後に「Finish」をクリックして終了です。
これで、バケットが作成されました。JungleDiskのメイン画面にバケットが表示されているはずです。様々なオプション設定があります。 (例えば、データの暗号化設定など)ここではデフォルトのままで作業を続けます。
ここまででJungleDiskはS3アカウントへの接続情報を生成することができるようになりました。(jungledisk-settings.xmlが生成可能) では、続いてLinuxのコンソールから作業を続けます。
Putty か別のSSH接続プログラムを使用して、trixboxProに接続します。
/usr/local ディレクトリに移動します。ここにJunglediskアプリケーションを配置します。どこでもかまいません。 さらにJunglediskディレクトリも作成しておきます。:
cd /usr/local
mkdir jungledisk
jungleDisk のUSB Desktop Editionによって、すでに必要なファイルは生成されています。これから必要なファイルをtrixboxProに転送します。 WinSCP を使用して、ファイルをWindowsマシンからLinuxマシンへ転送できます。junglediskとjungledisk- settings.xmlを作成した /usr/local/junglediskディレクトリにコピーしてください。ファイルは実行可能に権限設定されていないので、実行可能にします。:
chmod +x /usr/local/jungledisk/jungledisk
JungleDiskはFUSEシステムを使用します。これをダウンロードしインストールします。:
cd /usr/src
wget ftp://rpmfind.net/linux/dag/redhat/e....rf.noarch.rpm
wget ftp://rpmfind.net/linux/dag/redhat/e....rf.noarch.rpm
rpm -ivh dkms*
modprobe fuse
FUSEのインストールが終わりました。続いてオンラインストレージに接続します:
/usr/local/jungledisk/jungledisk /mnt/jungledisk -o config=/usr/local/jungledisk/jungledisk-settings.xml
このコマンドによりS3バケットをマウントします。 /mnt/junglediskディレクトリにアクセスして、バックアップが必要なファイルをここに転送することで、自動的にAmazon S3オンラインストレージにバックアップされるようになります。
つづいて、仕上げの作業に入ります。
スタートアップファイル(rc.local)を編集して、FUSEとJungleDiskがシステム起動時に自動的にスタートするように設定しておきます。:
nano -w /etc/rc.local
ファイルの最後尾に以下の行を追加してください:
/sbin/modprobe fuse
/usr/local/jungledisk/jungledisk /mnt/jungledisk -o config=/usr/local/jungledisk/jungledisk-settings.xml
CTRL+X を押してnanoを終了します。保存するかどうか聞かれたら「Y」とタイプしてください。
jungledisk実行ファイルにシンボリックリンクを作成し、どこからでも実行可能にしておきます。:
ln -s /usr/local/jungledisk/jungledisk /usr/bin/jungledisk
つづいて、バックアップのスケジュールを記述したスクリプトを作成します。
ここではrsyncを使用します。
Linuxのコンソールから:
cd /usr/local/jungledisk
nano -w backup
ここで、「backup」という名称のファイルを作成しています。以下をファイルに書き込みます:
#!/bin/bash
##########################################
# #
# Backup to Amazon S3 #
# #
# Created by Chris Sherwood - Fonality #
# #
# Version 1.0 - 07/25/2008 #
# #
##########################################
# This document assumes you are using /mnt/jungledisk as your S3 mount point
# *** Rsync your files ***
#
# Add or remove these as necessary for your organization
# Asterisk configuration files
rsync -atv /etc/asterisk/* /mnt/jungledisk/asteriskconfig
# System recordings (and all Asterisk sounds)
rsync -atv /var/lib/asterisk/* /mnt/jungledisk/asterisk
# System voicemails
rsync -atv /var/spool/asterisk/voicemail/* /mnt/jungledisk/voicemail
# ACD and FindMe recordings
rsync -atv /var/spool/asterisk/monitor/* /mnt/jungledisk/acdrecordings
# CDR CSV files
rsync -atv /var/log/asterisk/cdr-csv/* /mnt/jungledisk/cdr
# Just to know we're done
echo "All done!"
#
# OPTIONS:
#
# To mail the results of any of the rsyncs to you, append:
#
# | mail email@domain.com
#
# to the end of any of the rsync commands. Note, that is a pipe ( | ) before mail.
#
CTRL+Xで終了します。保存するか聞かれたら「Y」とタイプしてください。
上記のスクリプトでは、Asteriskのコンフィグファイル、通話録音音声データ、ボイスメール、ACD録音データ、CDRログをバックアップするようになっています。
ではこのスクリプトファイルを実行可能にしておきます:
chmod +x /usr/local/jungledisk/backup
続いて、このスクリプトを自動起動するように設定しておきます。
nano -w /etc/crontab
Crontabの書式は複雑に見えますが、非常にシンプルです。:
(分 0-59) (時 0-23) (日 1-31) (月 1-12) (曜日0-7,0と7は日曜日) (ユーザーコマンド) (コマンド)
それで、毎週日曜日の午前2時にバックアップを行うようにしたい場合は:
0 2 * * 0 root /usr/local/jungledisk/backup
毎日12:05amにバックアップするなら:
05 0 * * * root /usr/local/jungledisk/backup
5分毎にバックアップをとりたいなら:
0-59/5 * * * * root /usr/local/jungledisk/backup
これで完了です。