■ 前提知識 : MediaWikiデータ種類
https://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki/jaより抜粋 ~~~~~~~~~~~ MediaWiki は、重要なデータを 2 箇所に保持しています: * データベース => ページとその内容、利用者とその個人設定、メタデータ、検索のインデックス情報など。 * ファイルシステム => ソフトウェア構成ファイル、カスタム外装、拡張機能、画像 (削除されたものを含む) など。 ~~~~~~~~~~~
■ バックアップ方法
【1】 DB のダンプ機能使用 + ファイル群のバックアップ=> MySQLなら、mysqldump機能。【2】 XML 形式でダンプ (dumpBackup.php の使用) + ファイル群のバックアップ
=> エクスポートは、「【mediawiki HOME】/maintenance/dumpBackup.php」を実行し、 インポートには、「【mediawiki HOME】/maintenance/importDump.php」を実行し実現する。 => インポートには、「【mediawiki HOME】/maintenance/importImages.php」を実行し 画像やその他のアップロードされたファイルをインポートする
採用したバックアップ方法について
* 色々試したが、以下の方法をとるデータベース
=> DB のダンプ機能を利用 => MySQLの mysqldumpについては、以下の関連記事を参照のことhttps://blogs.yahoo.co.jp/dk521123/36680883.html
ファイルシステム
=> インストールした mediaWiki のディレクトリを 設定ファイル「LocalSettings.php」ごとコピーし解凍 => 解凍・圧縮については、以下の関連記事を参照のことhttps://blogs.yahoo.co.jp/dk521123/34102411.html
■ 実行環境
* OS : CentOS7 * DB : MySQL5.7 * Wiki : MediaWiki v1.31.0※ バックアップは、以下の関連記事の方法で、インストールされている環境の MediaWiki とする
https://blogs.yahoo.co.jp/dk521123/37624467.html
■ 手動によるバックアップ・リストア
バックアップ(ダンプ)
データベース# mysqldump -u【DB名】 -p【DBパスワード】 --single-transaction --routines --events --hex-blob -r 【バックアップファイル】 【DB名】 mysqldump -uroot -ppassword --single-transaction --routines --events --hex-blob -r wiki-db-backup.sql mediawikiファイルシステム
# tar -zcvf 【バックアップファイル】 -C 【MediaWikiのパス】 【MediaWikiのディレクトリ名】 tar -zcvf wiki-file-backup.tar.gz -C /var/www/html mediawiki
復元(リストア)
データベース# mysql -u【DB名】 -p【DBパスワード】 【DB名】 < 【バックアップファイル】 mysql -uroot -ppassword mediawiki < wiki-db-backup.sqlファイルシステム
# tar xvzf 【バックアップファイル】 -C 【MediaWikiのパス】 tar xvzf wiki-file-backup.tar.gz -C /var/www/html # 環境に合うように LocalSettings.php を変更する sudo vi /var/www/html/mediawiki/LocalSettings.php
■ シェルスクリプト
* 定期的にバックアップを実行するためのスクリプトを作成する
バックアップ
backup_mediawiki.sh#!/bin/bash if [ $# -ne 1 ]; then echo "$(basename $0) </path/to/dump/dir>" exit 1 fi out_dump_dir=$1 mkdir -p ${out_dump_dir} . ./.db_info mediawiki_dir="/var/www/html" mediawiki_dir_name="mediawiki" mediawiki_home="${mediawiki_dir}/${mediawiki_dir_name}" mediawiki_db_name="mediawiki" tmp_path="/tmp" target_name="mediawiki_$(date '+%Y%m%d%H%M%S')" work_path="${tmp_path}/${target_name}" mkdir -p ${work_path} # [1] Export Wiki pages from DB. echo "[INFO] [1] Export Wiki pages from DB. [${work_path}] [${mediawiki_db_name}]" export MYSQL_PWD=${MYSQL_PASSWORD}; mysqldump -u${MYSQL_USER} --single-transaction --routines --events --hex-blob -r "${work_path}/wiki-db-backup.sql" ${mediawiki_db_name} # [2] Copy MediaWiki directory echo "[INFO] [2] Copy MediaWiki directory" tar -zcvf "${work_path}/wiki-file-backup.tar.gz" -C ${mediawiki_dir} ${mediawiki_dir_name} # [3] Zip backup files echo "[INFO] [3] Zip backup files" tar -zcvf "${out_dump_dir}/${target_name}.tar.gz" -C ${tmp_path} ${target_name} rm -r ${work_path} echo "Done! $(date '+%Y-%m-%d %H:%M:%S')"DB情報が格納されている外部ファイル「.db_info」
MYSQL_USER=root MYSQL_PASSWORD=password
定期実行
デプロイsudo mkdir -p /etc/backups sudo mv backup_mediawiki.sh /etc/backups/. sudo chown root:root /etc/backups/backup_mediawiki.sh sudo chmod +x /etc/backups/backup_mediawiki.sh定期実行するための cron
sudo crontab -e ~~~~~~~~~~~ # MediaWiki Backup / Weekday 23:30 30 23 * * mon-fri /etc/backups/backup_mediawiki.sh /home/admin/backups ~~~~~~~~~~~
リストア
前提条件* 以下の関連記事の「【1】 Webサーバの設定」~「【4】 MediaWikiの設定 (ただし、「【4-1】MediaWikiのインストール 」「【4-4】MediaWikiの初期設定を行う 」は行わないこと)」 を設定しておくことhttps://blogs.yahoo.co.jp/dk521123/37624467.html
手順
tar xvzf mediawiki_20180823_233000.tar.gz cd mediawiki_20180823_233000 # データベースのダンプをインポートする mysql -uroot -ppassword mediawiki < wiki-db-backup.sql # MediaWiki を展開する tar xvzf wiki-file-backup.tar.gz -C /var/www/html # 環境に合うように LocalSettings.php を変更する sudo vi /var/www/html/mediawiki/LocalSettings.php ~~~~ # リストア先に書き換える(他に2か所ある) $wgServer = "http://192.168.XX.YYY"; ~~~~ # Apache の再起動 sudo systemctl restart httpd # ブラウザで「http://192.168.XX.YYY/mediawiki」にアクセスする
参考文献
http://www.yosbits.com/wordpress/?p=374http://dococo.jp/index.php?title=MediaWiki%E3%81%AE%E3%83%AA%E3%82%B9%E3%83%88%E3%82%A2