koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

KUSANAGI(というかWordPress)をGoogleDriveにバックアップする

人として、VPSの外にバックアップを取りたかったので取った。

別にどこにとっても良かったのだけれど、なんとなくGoogleDriveにした。

ぐぐったらLinuxで便利に使えるクライアントが出てきた。

takuya-1st.hatenablog.jp

インストールと認証は済ませておく。

バックアップ用のディレクトリを作る。

# gdrive upload --recursive /home/kusanagi/bkup/
Creating directory bkup

作ったディレクトリのIDを確認する。

# gdrive list
Id                                             Name                 Type   Size       Created
idstring                   bkup                 dir               2016-12-21 hh:mm:ss
.
.
.

適当にバックアップして同期アップロードする。

#!/bin/bash

gdriveid="idstring"
bkversion=`date +%u`
bkdir="/home/kusanagi/bkup/"
wpdir="/home/kusanagi/hoge_html"
sitebkfile="${bkdir}wp-${bkversion}.tar.gz"
dbbkfile="${bkdir}db-${bkversion}.sql.gz"

rm $sitebkfile
rm $dbbkfile

mkdir -p $bkdir
tar czf $sitebkfile $wpdir

 mysqldump -u root -ppassword dbname | gzip -c > $dbbkfile

/usr/local/bin/gdrive-linux-x64 sync upload $bkdir $gdriveid

CRON仕込む。

# crontab -l
07 03 08 */2 * /usr/bin/kusanagi update cert hoge_html
30 04 * * * /root/script/backup.sh
# ls /root/script/backup.sh
/root/script/backup.sh

ちゃんと動いているかは数日後に確認する。

眠いので寝る。

なお、もっといい参考ページがたくさんあります。

http://www.yoshihiro.asia/archives/172www.yoshihiro.asia

knowledge.sakura.ad.jp

こけてた

2016/12/23追記。

CRONはうごいていて、バックアップはされていたけれど、GoogleDriveに同期されていなかった。 (Dec 23 19:48 は手でスクリプト実行した分) ツールが資格情報見失ってるとかかな。

# ls -l /home/kusanagi/bkup/
total 63972
-rw-r--r-- 1 root root   107650 Dec 21 04:30 db-3.sql.gz
-rw-r--r-- 1 root root   115290 Dec 22 04:30 db-4.sql.gz
-rw-r--r-- 1 root root   117770 Dec 23 19:48 db-5.sql.gz
-rw-r--r-- 1 root root 21700719 Dec 21 04:30 wp-3.tar.gz
-rw-r--r-- 1 root root 21717966 Dec 22 04:30 wp-4.tar.gz
-rw-r--r-- 1 root root 21732399 Dec 23 19:48 wp-5.tar.gz

github.com

多分これかな?

フルパスにしてまた様子を見よう。

2016/12/24 追記。

フルパスにしたらOKだった。 (コードスニペット修正済)

CRONでスクリプトを実行した際に、gdriveのファイル名だけ指定して実行していたところ、パスが通っていなかったようだった。 フルパスで実行ファイルを指定したところ問題なく完了した。