[ファイアバード] cron で DokuWiki をバックアップする

2017 年から使い始めた DokuWiki を現在もフル活用している。

Dokuwiki を始めた – with a Christian Wife
https://wacw.cf/2017/10/27/just-started-dokuwiki/

一般公開用のまとめサイトおよび自分用のメモサイトとしてずいぶんコンテンツが充実してきた。データが消えると困るので、もちろんバックアップをとっているんだけど、これまで手動でやっていた。「BackupTool for DokuWiki」というプラグインを使えば数クリックでバックアップができる。

plugin:backup [DokuWiki]
https://www.dokuwiki.org/plugin:backup

しかし、それでもサイトにアクセスしていちいち手作業でバックアップするのは面倒。自動化することにした。レンタルサーバーの「ファイアバード」は cron が使えるので、定期的にスクリプトを動かせばいい。

(1)ドメインのルートに DokuWiki を設置しているとして、以下のようなバックアップ用スクリプトを作成する。

BACKUP_DIR=/home/[サーバー ID]/[ドメイン名]/public_html/backup/
TARGET_DIR1=/home/[サーバー ID]/[ドメイン名]/public_html/conf/
TARGET_DIR2=/home/[サーバー ID]/[ドメイン名]/public_html/data/
SAVE_DAYS=14
 
DATE=`date '+%Y%m%d'`
echo "$DATE"
 
cd "$BACKUP_DIR"
tar cjfP "$DATE.tar.bz2" "$TARGET_DIR1" "$TARGET_DIR2"
echo "$BACKUP_DIR$DATE.tar.bz2"
 
find "$BACKUP_DIR" -mtime +"$SAVE_DAYS" -exec rm -f {} \;

・DokuWiki の conf ディレクトリおよび data ディレクトリを backup ディレクトリにバックアップ。
・バックアップ日から 14 日間を越えたものを自動削除。
・ファイル名は backup.sh とでもしておく。
・「サーバー ID」はファイアバードの「サーバー管理ツール>アカウント情報」で確認できる。

(2)ファイアバードに backup.sh をアップロード。今回は DokuWiki のルートディレクトリにアップしたものとする。パーミッションを 750 に変更する。

(3)backup ディレクトリを作成する。

(4)ファイアバードの「サーバー管理ツール>ホームページ>Cron 設定>CRON 追加」で cron を設定する。

その際コマンドは以下のようにする。

/home/[サーバー ID]/[ドメイン名]/public_html/backup.sh

これで cron を実行すればいい。

参考:
DokuWikiのバックアップ [DokuWiki.biz]
https://dokuwiki.biz/maintenance/backup

【ネットオウル】cronでphpを自動実行する際の注意2つ
http://blog.dododori.com/create/program/netowl-cron/

ユーザーサポート – サポートマニュアル /高機能な大容量レンタルサーバーのファイアバード
https://www.firebird.jp/support/man/homepage_cron_setting.php

ftpコマンドについて詳しくまとめました 【Linuxコマンド集】
https://eng-entrance.com/linux-command-ftp

gzip – tar: Removing leading `/’ from member names – Unix & Linux Stack Exchange
https://unix.stackexchange.com/questions/59243/tar-removing-leading-from-member-names