去年,我使用 Mediawiki 搭建了一个 wiki 站点,用于团队知识积累。短短半年,已经有不少的沉淀,随着 wiki 越来越重要,它的数据安全性也必须考虑起来,因此我们准备把 wiki 迁移到 VM 上,并且考虑做好备份。迁移之前,数据备份的操作是件体力活,不过好在网上有不少的文章介绍如何操作, Mediawiki 官方也有专门的文章来介绍具体的操作过程以及需要注意的地方,详见Backing up a wiki。
文章的最后还引用了一系列的备份脚本,这是我等懒人最喜欢的方法,越简单粗暴越好。看了其中的一个脚本(Backing up a wiki/Duesentrieb's backup script - MediaWiki),脚本的内容很简单,不过要想 run 起来,首先还得改动开头的几处配置,比较麻烦。
所以我自己 fork 了一个新的版本,通过命令行参数的形式提供配置,并且修复了脚本的几处 Bug,例如备份目录没有创建、输出信息中的转义字符串没有显示等等。
更改后的脚本可以从 Github 上下载:
# git clone https://github.com/kodango/backup-mediawiki # cd Backup-Mediawiki
使用方法可以参考脚本帮助:
# sh backup_mediawiki.sh Usage: backup_mediawiki.sh <-n db_name> <-u db_user> <-p db_pwd> <-b backup_dir> <-w wiki_install_dir> [-c charset] [-r readonly] Options: -n set the database your wiki stores data in. -u set the database username. -p set the database password. -b set the directory to write the backup to. -w set the directory mediawiki is installed in. -c set the database charset, such as latin1, utf8, binary. Check your wiki's LocalSettings.php. -r leave the wiki readonly when dump finished
使用例子:
# sh backup_mediawiki.sh -n my_wiki -u root -p 123456 -b ./bak_wiki -w /var/www/my_wiki # backup mediawiki here
脚本完成后,所有信息备份在./bak_wiki 目录下。