💬

gdriveを用いたOmeka Sの簡易バックアップ

2022/05/12に公開

概要

gdriveを用いたOmeka Sの簡易バックアップの方法についてのメモです。

ここでは例として、Amazon Lightsailで起動したLAMP環境にインストールしたOmeka Sを対象とします。インストール方法は以下をご確認ください。

https://zenn.dev/nakamura196/articles/5772d6c918508a

gdriveのインストール

今回は、Google Driveにファイルをバックアップします。そのため、gdriveを使用します。以下の記事を参考に、gdriveをインストールしてください。

https://zenn.dev/nakamura196/articles/cb48430ca2f822

backup用のスクリプトを用意する

$HOMEディレクトリにおいて、例えばbackup.shというファイルを作成します。ファイルの内容の一例は以下です。

# 設定値

## Omeka Sのインストールディレクトリ
OMEKA_DIRNAME=htdocs
OUTPUT_DIRNAME=`date +%y-%m-%d`
## MySQLのユーザ名。
USERNAME=root
## MySQLのパスワード。以下のコマンドで確認できます。
## cat /home/bitnami/bitnami_application_password
PASSWORD=<パスワード>
## Omeka Sのデータベース名。例:omekas
DATABASE_NAME=<データベース名>
FOLDER_ID=<GoogleドライブのフォルダID>

# 出力フォルダの作成(日付に基づくフォルダ名を作成)
mkdir -p "$OUTPUT_DIRNAME"
# sqlのバックアップ
mysqldump -u $USERNAME -p$PASSWORD $DATABASE_NAME > $OUTPUT_DIRNAME/dump.sql
# omeka関連フォルダの圧縮
zip -q $OUTPUT_DIRNAME/$OMEKA_DIRNAME -r $OMEKA_DIRNAME
# Google Driveへのアップロード
./go/bin/gdrive upload --recursive --parent $FOLDER_ID $OUTPUT_DIRNAME
# 出力フォルダの削除
rm -rf $OUTPUT_DIRNAME

上記のファイルを作成後、以下のコマンドを実行します。

bitnami@ip-172-26-1-210:~$ sh backup.sh 
Creating directory 22-05-12
Uploading 22-05-12/htdocs.zip
Uploading 22-05-12/dump.sql  

結果、以下のように日付に基づくフォルダが作成され、その中にzipファイルとsqlファイルが保存されます。

cronの設定

上記のbackup.shスクリプトを定期的に実行するように設定します。以下を実行します。

bitnami@ip-172-26-1-210:~$ crontab -e

以下を追記します。以下は毎日0時0分に実行する例です。

0 0 * * * sh /home/bitnami/backup.sh

上記により、Google Driveを用いた定期的なバックアップが可能になります。

まとめ

今回示したbackup.shの内容は環境に応じて修正する必要があるかと思いますが、Google Driveを用いたOmeka Sの簡易なバックアップ方法として、参考になりましたら幸いです。

Discussion