Использование MediaWikiDumper
Это перевод README-файла MediaWikiDumper v 1.1.5. Перед использованием удостоверьтесь, что именно эта версия является последней версией данного набора скриптов. |
Содержание |
[править] Версия
Этот архив содержит альфа-версию MediaWikiDumper 1.1.5.
[править] Основная информация
MediaWiki Dumper — набор инструментов, написанный Эдвардом Черненко <[email protected]>.
Он позволят сохранить копию википроекта при помощи API для ботов.
В результате работы скриптов получаются файлы дампа MySQL в формате, совместимом с LOAD DATA INFILE (это позволяет импортировать их очень быстро, быстрее чем обычные XML-дампы).
[править] Системные требования
Необходимы следующие модели для Perl: LWP, MediaWiki::API (используйте последнюю версию! ранние версии имеют проблемы с UTF-8), IO::Socket::SSL, MIME::WordDecoder, Digest::MD5, Mail::POP3Client, Term::ANSIColor, ProgressBar::Stack, Cache::Memcached::Fast, MIME::Base16, Time::CTime. Используйте следующую команду для их установки:
$ cpan LWP MediaWiki::API IO::Socket::SSL MIME::WordDecoder Digest::MD5 Mail::POP3Client Term::ANSIColor ProgressBar::Stack Cache::Memcached::Fast MIME::Base16 Time::CTime
Примечания: на системах Windows известно о проблемах с установкой MIME::Base32, поэтому я включил его в состав дистрибутива.
[править] Файлы настроек
Перед тем, как использовать скрипты, необходимо обновить некоторые файлы (необходим пароль для аккаунта бота в старой вики, данные базы данных MySQL новой вики, имя и пароль Gmail-аккаунта, связанного с аккаунтом бота на Викии).
Примечания:
- для скрипта givepassword.pl ваш аккаунт бота на Викии должен иметь подтвержденный адрес электронной почты (в Special:Preferences) для получения сообщений от других пользователей Викии для восстановления пароля.
- скрипт text.pl требует административные права для сохранения удаленных правок.
Необходимые конфигурационные файлы
- Для text.pl, images.pl, logs.pl, interwiki.pl:
- BOTCONFIG.pl
- Для givepassword.pl:
- CONFIGWIKIACENTRAL.pl, GMAIL_CONF.pm, mwDB.pm
- Для users.pl:
- BOTCONFIG.pl, mwDB.pm
[править] Использование
Внимание: эта инструкция предназначена для UNIX-систем. См. секцию «Использование на Windows», если вам это надо.
1. Обновите все конфигурационные файлы, перечисленные выше.
2. Сохраните все логи:
$ perl logs.pl
3. Сохраните всю информацию об изображениях:
$ perl images.pl
4. Сохраните таблицу интервики:
$ perl interwiki.pl
5. Загрузите все изображения:
$ perl download-images.pl
Примечание: этот скрипт не разделяется на потоки, и если на вашей вики очень много изображений, вы можете запустить его в фоновом режиме вместе с остальными скриптами. Для этого используйте команду:
$ perl download-images.pl >>/tmp/download-images.log 2>&1 &
6. Настройте изображения (предполагается, что ваш веб-сервер работает под пользователем и группой 'httpd'):
$ cp -r --update `find dumps/_downloaded/ -mindepth 1 -maxdepth 1 -type d` ПУТЬ_К_ПАПКЕ_С_ИЗОБРАЖЕНИЯМИ $ chown httpd.httpd -R ПУТЬ_К_ПАПКЕ_С_ИЗОБРАЖЕНИЯМИ
7. Сообщите участникам, что не надо загружать новые изображения в старую вики (и рекомендуйте не редактировать страницы в старой вики). Сохраните содержимое статей, все правки и удаленные версии:
$ perl text.pl
8. Сообщите участникам, что не надо редактировать старую вики. Сделайте резервную копию вашего дампа, затем загрузите изменения, сделанные с момента шага 7 (дополнительная защита):
$ cp dumps/{text,restrictions,revision,text,archive}.txt /tmp/ $ perl text.pl
Если скрипт напишет, что не может выполнить задачу (или он выполняется слишком долго по неизвестным причинам), тогда И ТОЛЬКО ТОГДА отмените его (Ctrl+C) и откатитесь к дампу, созданному на шаге 7:
$ mv /tmp/{text,restrictions,revision,text,archive}.txt .
9. Загрузите информацию в базу данных:
$ alias MYSQL='mysql --batch --show-warnings -u <НАЗВАНИЕ_ВАШЕЙ_БАЗЫ_ДАННЫХ> -D <ИМЯ_ПОЛЬЗОВАТЕЛЯ_БАЗЫ_ДАННЫХ> -p<ПАРОЛЬ_БАЗЫ_ДАННЫХ>' ; $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/interwiki.txt' IGNORE INTO TABLE interwiki" ; $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/logs.txt' IGNORE INTO TABLE logging" ; $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/images.txt' IGNORE INTO TABLE image" ; $ MYSQL -e"ALTER TABLE oldimage ADD PRIMARY KEY (oi_archive_name)" ; $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/images_old.txt' IGNORE INTO TABLE oldimage" ; $ MYSQL -e"ALTER TABLE oldimage DROP PRIMARY KEY" ; $ MYSQL -e"ALTER table archive ADD PRIMARY KEY(ar_rev_id)" ; $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/archive.txt' IGNORE INTO TABLE archive" ; $ MYSQL -e"ALTER TABLE archive DROP PRIMARY KEY" ; $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/page.txt' REPLACE INTO TABLE page" ; $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/restrictions.txt' REPLACE INTO TABLE page_restrictions" ; $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/revision.txt' REPLACE INTO TABLE revision" ; $ MYSQL -e"LOAD DATA LOCAL INFILE 'dumps/text.txt' IGNORE INTO TABLE text" ;
10. Зарезервируйте аккаунты участников.
$ perl users.pl
11. Обновите вторичные таблицы вашей новой вики (pagelinks, recentchanges и т.д.):
$ cd ПАПКА_С_ВАШЕЙ_MEDIAWIKI $ php maintenance/rebuildall.php
Сохранение вашей вики завершено. Только не забудьте добавить скрипт givepassword.pl в ваш список задач cron: выполните команду
$ crontab -e
(от имени суперпользователя) и добавьте следующую строку:
0,10,20,30,40,50 * * * * ( cd ПУТЬ_К_ВАШИМ_БОТАМ && /usr/bin/perl givepassword.pl >/dev/null 2>&1 )
[править] Оптимизация скриптов при наличии аккаунта бота
В text.pl, измените строку 'gaplimit => 500' на 'gaplimit => 5000', также увеличьте 'rvlimit' с 50 до 5000.
В images.pl, измените 'gailimit' и 'iilimit' на 5000 таким же образом.
В logs.pl, измените 'lelimit' на 500.
В users.pl измените 50 на 500 в 'my $MAX_UINFO_PER_REQUEST = 50;'.
[править] Общая таблица 'users'
Если вы имеете другой википроект на вашем сервере, и хотите чтобы таблица участников вашей новой вики была объединена с существующей таблицей 'user', напишите название базы данных существующей вики в следующей строке users.pl (между одиночными кавычками):
our $SHARED_DB = '';
[править] Использование на Windows
Крайне рекомендуется запускать эти скрипты из-под операционной системы UNIX (например через SSH на сервере вашей новой вики). Однако, я обратил внимание на просьбы пользователей Windows, и эти скрипты можно использовать под данной операционной системой. См. неофициальное руководство.
[править] Ограничения
- Сохраняется не более 500 удаленных правок для каждого названия страницы.
- Удаленные изображения не сохраняются.
[править] Последняя информация, загрузка
См. [ http://absurdopedia.net/wiki/User:Edward_Chernenko/MediaWikiDumper#Download ].
Использование MediaWikiDumper относится к теме «Техники и викиботы» |