LoginSignup
3
5

More than 5 years have passed since last update.

Kobitoのデータをバックアップするシェルスクリプト

Posted at

はじめに

ドットインストールのシェルスクリプト入門を見たので、せっかくだから勉強がてら何かを書こうと思い、Kobitoのデータをバックアップするシェルスクリプトを書きました。

環境

  • MacOS X 10.10.4 Yosemite
  • Kobito 2.3.2

前提

Kobitoのデータ

Kobitoのデータは、
~/Library/Containers/com.qiita.Kobito/Data/Library/Kobito
にある

  • Kobito.db
  • Kobito.db-shm
  • Kobito.db-wal
  • Kobito.db.xxxxxxx.bak

の3つ(4つ)。

Kobitoのデータの保存は、

  • Kobitoを終了する
  • メニュー - アイテム - 保存 を選択する

の2つの時にされるっぽい。

スクリプト

コード

backup_kobito.sh
#!/bin/bash

# データをバックアップするディレクトリ
backup_dir_path=~/Dropbox/project/Kobito
# Kobitoの元データ保存されているディレクトリ
data_dir_path=~/Library/Containers/com.qiita.Kobito/Data/Library/Kobito

# バックアップディレクトリの作成
if [ ! -e $backup_dir_path ]; then
  mkdir -p $backup_dir_path
fi

# バックアップファイルネームの作成
date=`date +"%Y%m%d"`
db_filename=Kobito.db.$date.bak
db_shm_filename=Kobito.db-shm.$date.bak
db_wal_filename=Kobito.db-wal.$date.bak

# バックアップ処理
echo "バックアップディレクトリは $backup_dir_path です"

cp -p $data_dir_path/Kobito.db $backup_dir_path/$db_filename && echo "Kobito.db を $db_filename としてバックアップしました"

cp -p $data_dir_path/Kobito.db-shm $backup_dir_path/$db_shm_filename && echo "Kobito.db-shm を $db_shm_filename としてバックアップしました"

cp -p $data_dir_path/Kobito.db-wal $backup_dir_path/$db_wal_filename && echo "Kobito.db-wal を $db_wal_filename としてバックアップしました"

説明

4-7行目:ディレクトリの指定

backup_dir_pathにバックアップを作成するディレクトリを指定する。
上のコードは、"~/Dropbox/project/Kobito"ディレクトリを指定している。

9-12行目:バックアップディレクトリの作成

バックアップを作成するディレクトリが存在しなければ作る。

14-18行目:バックアップファイルネームの作成

バックアップファイルネームはそれぞれ、"(元のファイルネーム)YYYYMMDD.bak"。
例えば、Kobito.dbを2015年7月16日にバックアップすると、"Kobito.db.20150716.bak"という名前になる。

20-27行目:バックアップ処理

ファイルのバックアップに成功すると、バックアップした旨を表示する。

実行

$ chmod 744 backup_kobito.sh
$ ./backup_kobito.sh
Kobito.db を Kobito.db.20150716.bak としてバックアップしました                           
Kobito.db-shm を Kobito.db-shm.20150716.bak としてバックアップしました                   
Kobito.db-wal を Kobito.db-wal.20150716.bak としてバックアップしました
$ ls ~/Dropbox/project/Kobito                                                                                  Kobito.db-shm.20150716.bak
Kobito.db-wal.20150716.bak
Kobito.db.20150716.bak

以上

すでに同名バックアップファイルが存在した時の上書き処理があった方がいいんだろうけど、どういう処理がベストなのかよくわからない……

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5