タグ : google drive

WordPress ファイルとデータベースを自動バックアップして Google ドライブにアップロードする

やっと当ブログの WordPress のファイルとデータベースをバックアップして Google ドライブにアップロードするまでの処理を自動化しました。

前提

扱っている技術的なものは以下のとおりです。

バックアップ処理を書いたシェルスクリプト

WordPress データベースのバックアップ

ひとまず、書いたシェルスクリプトを書き残しておきます。

# backup_db.sh
DB_NAME=mydbname
DB_USER=mydbuser
DB_PASSWORD=mydbpassword
DB_HOST=localhost
 
DATE_STR=$(date +\%Y\%m\%d-\%H\%M\%S)
BACKUP_PATH=/tmp
BACKUP_FILE=$DB_NAME-$DATE_STR.sql
GDRIVE_DIR_ID=0B840dMOrdKT5am9aRDlNUUFic0k
KEEP_DAYS=3
 
## backup DB
cd $BACKUP_PATH
mysqldump $DB_NAME --default-character-set=binary \
-h $DB_HOST -u $DB_USER -p$DB_PASSWORD > $BACKUP_FILE
tar zcvf $BACKUP_FILE.tar.gz $BACKUP_FILE
gdrive upload --parent $GDRIVE_DIR_ID $BACKUP_FILE.tar.gz
rm -f $BACKUP_FILE.tar.gz $BACKUP_FILE
 
## Housekeeping
LIMIT_TIMESTAMP=$(date -d "$KEEP_DAYS days ago" +%s)
gdrive list --no-header --max 1000 --query "'$GDRIVE_DIR_ID' in parents" | while read ln
do
  ITR_ID=$(echo $ln | awk '{print $1}')
  ITR_DATE=$(echo $ln | awk '{print $(NF-1),$NF}')
 
  if [ $(date -d "$ITR_DATE" +%s) -lt $LIMIT_TIMESTAMP ]
  then
    gdrive delete $ITR_ID
  fi
done

WordPress ファイルのバックアップ

# backup_file.sh
DATE_STR=$(date +\%Y\%m\%d-\%H\%M\%S)
 
TARGET_PATH=/var/www/vhosts/
TARGET_FILE=codenote.net
BACKUP_FILE=$TARGET_FILE-$DATE_STR.tar.gz
GDRIVE_DIR_ID=0B840dMOrdKT5SFg5UkZ2c05aWkU
 
KEEP_DAYS=7
 
## backup files
cd $TARGET_PATH
tar cfz $BACKUP_FILE $TARGET_FILE/
gdrive upload --parent $GDRIVE_DIR_ID $BACKUP_FILE
rm -f $BACKUP_FILE
 
## Housekeeping
LIMIT_TIMESTAMP=$(date -d "$KEEP_DAYS days ago" +%s)
gdrive list --no-header --max 1000 --query "'$GDRIVE_DIR_ID' in parents" | while read ln
do
  ITR_ID=$(echo $ln | awk '{print $1}')
  ITR_DATE=$(echo $ln | awk '{print $(NF-1),$NF}')
 
  if [ $(date -d "$ITR_DATE" +%s) -lt $LIMIT_TIMESTAMP ]
  then
    gdrive delete $ITR_ID
  fi
done

gdrive コマンドの Tips

gdrive list でディレクトリの一覧を表示する。

$ gdrive list --query "mimeType='application/vnd.google-apps.folder'"
Id                             Name   Type   Size   Created
0B840dMOrdKT5am9aRDlNUUFic0k   db     dir           2016-12-13 00:17:46

随時、内容をアップデートしていきます。

参考情報

バックアップ用途としてオンラインストレージサービスを比較してみた

バックアップで利用している HDD 1TB をいつも持ち歩いてるのですが、調子が悪くて読み込めなくて焦るということが増えてきました。この HDD の中には消えると困るデータも入っているので、オンラインバックアップサービスを利用することを決めて、色々と検討した末に Google Drive を採用しました。

オンラインバックアップサービスに Google Drive を採用した理由

Google Drive は 20GB までなら無料で利用できますが、容量が足りないので 100 GB プランに上げて利用しています。100 GB プランだと月額 $1.99 です。全部バックアップした場合は 1TB にする必要がありますが、それでも月額 $9.99 で済みます。

Google Drive 100GB Plan

Google Drive 100GB Plan

オンラインストレージサービスの比較

他に検討したオンラインストレージサービスは以下の通りです。

Dropbox

1TB で ¥1,200/月 です。

有料プランがまず 1TB からなので 100GB もあれば充分という人には Google Drive を利用することをおすすめします。

OneDrive

1TB で $6.99/月と価格的には一番良さそうです。

もし Google Drive のプランを 100GB から 1TB にアップグレードする必要がでてきたときには OneDrive への移行も検討したいです。

ただ、1点だけ気になるのが OneDrive のサービスの使いやすさです。僕は OneDrive を全く利用したことが無いので Google Drive と比較してかなり劣るようだったら、安価だからという理由だけで OneDrive へ乗り換えるという選択肢はなさそうです。

MEGA

無料で 50GB のストレージが利用できるという点が素晴らしいです。

mega.nz pricing

mega.nz pricing

1TB 以上のプランを利用することが出てきたときに MEGA には、2TB 19.99 €/月 のプランがあるので Google Drive から乗り換えるという選択肢がでてくるかもしれません。

以前の Megaupload が違法ダウンロードサイトの巣窟になっていたので、Mega が同じ用途で利用されてサービス閉鎖に追い込まれないかだけがユーザ的には気になるポイントです。

Amazon S3

Web サービス開発での利用ではなく、単なるバックアップ用途として Amazon S3 だと価格はいくらぐらいになるか調べてみると意外と割高でした。

  • スタンダードストレージ $0.0300 /GB
  • 標準 – 低頻度アクセスストレージ $0.0125 /GB
  • Glacier ストレージ $0.007 /GB

標準で価格計算したとしても $0.0125 * 1TB (1000GB) = $12.5 と Dropbox と同程度でした。

B2 Cloud Storage

少し前に TechCrunch の「バックアップサービスのBackblazeがAmazon S3の1/4の料金でクラウドストレージサービスを立ち上げ」という記事で取り上げられていた Backblaze を利用すると 1TB 5$ とかなり低価格で利用できそうです。

$0.005 /GB なので $0.005 * 1TB (1000GB) = $5

今回、比較した中では最安価ですが Web アプリが使いにくいので個人用には向いてないと判断しました。例えば、ファイルサイズが 100MB を超える場合は Web からはアップロードできないので、CLI を利用するしかないというようなことです。

コストはかなり抑えられるので Web サービス開発で Backblaze を利用するのは良い選択かもしれませんね。

まとめ

オンラインストレージサービスはそれぞれ良い点・悪い点があるので、自分の用途にあったサービスを見極めて利用していけると良いですね。お金はそんなに掛けないで、大切なデータを守れるのがベストだと思ってます。

他に「このオンラインストレージサービスもオススメだよ!」という情報があればぜひコメントにて教えて下さい。

[Google Apps] Google Drive の容量を組織単位で購入できるか? → できない

Google Drive の容量を組織単位で購入できるか問合せたところ、できないという回答を頂きました。

Q:
Google Drive の容量を組織単位で購入できますでしょうか?
具体的には、ユーザー個別のアカウントに容量が紐付く形ではなく、組織全体として共有して利用できる購入方法はありますでしょうか?

A:
恐れ入りますが、現状、ドライブの容量を追加いただく場合、ユーザー様の個別アカウントごとに、容量が割り当てられます。
そのため、組織に特定の容量を割り当てていただき、その容量をメンバー内で共有いただくことは、現状できかねます。ご期待にお応えできず、申し訳ございません。

なお、管理者様が割り当てる際の容量は、最小 20 GB から追加いただくことが可能です。
複数のユーザー様に同じ容量を割り当てる場合、割り当て時に組織を選択し、容量を割り当てますと、組織内の複数ユーザーに一度に同容量を割り当てることが可能でございます。

ご利用いただく際は、以下の手順にてお試しいただきますようお願いいたします。

1. Google Apps の管理コンソールにログイン
2. [お支払い] アイコンをクリック
3. ドライブストレージの [ライセンス管理] をクリック
4. [見割り当てのユーザー] の画面で、[組織] のリンクをクリックし、組織を選択し、容量を割り当て


ドライブの容量について(追記:2014/09/09)

ドライブの容量につきましては、管理者が管理する容量と、個人のアカウントが購入する容量の二種類あるらしい。

違いは、管理者が容量の割り当てをコントロールできる/できないの違いだけみたいです。

なお、料金につきましては、以下のページをご参照とのこと。

管理者が購入する容量(Google ドライブ ストレージのライセンス登録の有効化)
個人で購入する容量

1TB が月々 $9.99 か $89.00 ってかなり差があると思うんですけど・・・。

2014年9月5日のトピックス

2014年9月5日の個人的なトピックスを振り返り。


IT

Google ドライブの容量購入について調べることがあったので、管理者向けヘルプページを確認しました。

Google ドライブに関する管理者向けのよくある質問 – Google Apps 管理者用 ヘルプ


プログラミング

Tokyo Otaku Mode では Mongoose のコネクションマネージャを自作している。

Mongooseを使って複数のMongoDBを1つのDBのように扱う方法 | Tokyo Otaku Mode Tech Blog


ビジネス

勤務先で、人事という重要なポジションの募集を開始しました。

日本発グローバルオタクサービスを支える人事担当者募集! – Tokyo Otaku Mode Inc.の求人 – Wantedly

[Google Apps] ドキュメントの共有設定を組織内に制限する

Google Apps では管理者用のコンソールからドキュメントの共有設定を組織内に制限することができます。

ドキュメントの共有オプション – Google Apps 管理者用 ヘルプ

今回は「ユーザーはこの組織外のユーザーとドキュメントを共有できません」の設定を有効にする上で、調査した内容を書き残しておきます。

ここでは、組織内のドメインは codenote.net とします。

まず、デフォルトのGoogleドライブの共有オプションは下記のようになっています。

Googleドライブの共有オプション(デフォルト)

google-drive-share-settings-default

これを下記のように設定変更します。

Googleドライブの共有オプション(変更後)

google-drive-share-settings-changed

そうすると、既に組織外のユーザーに共有済みのドキュメントの共有設定まで影響をうけるようでした。なので、例えば、bakorer@gmail.com 宛に共有していたドキュメントはこの設定を有効にすると「権限が必要です」というページが表示されるようになります。この場合、組織内のドメイン codenote.net には共有できます。

google-drive-permission-deny

今まで、bakorer@gmail.com に共有していたドキュメントは別途でグループを作成してそれに共有するという感じで共有設定を移行する必要があります。

グループに追加しても @gmail.com など組織外のメールアドレスには共有できませんでした。

ちょっと制限が増えて面倒ですが、会社の重要な機密情報を外部に漏らさないためにも重要な点なので、しっかり設定しておきたいですね。