Руководство:DeleteBatch.php

This page is a translated version of the page Manual:DeleteBatch.php and the translation is 100% complete.
Other languages:
English • ‎Türkçe • ‎dansk • ‎español • ‎polski • ‎português do Brasil • ‎русский • ‎中文 • ‎日本語

Внимание Внимание: Обо всех удалённых с помощью этого скрипта страницах, будет направлено уведомление на почту участникам, имевшим эти страницы в своём списке наблюдения.

deleteBatch.php — скрипт обслуживания, расположенный в директории maintenance, который может быть использован для удаления множества страниц.

Использование

php deleteBatch.php somepages.txt

(Это удалит страницы содержащиеся в текстовом файле "somepages.txt")

На вики фермы с связанные папки, изменить к папке, содержащей LocalSettings.php и использование:

php ./maintenance/deleteBatch.php  --conf ./LocalSettings.php -r "reason for deletion" ./deleteBatch.txt
Параметр Описание
-u <user> Имя участника, показываемое в записях журнала. Если оставлено пустым, удаления записываются на участника, называемого Delete page script.
-r <reason> Причина для удаления. Если пустая, причина не отображается в журналах.
-i <interval> Количество секунд задержки после каждого удаления.
<listfile> Файл, в котором каждая строка содежит название страницы для удаления.

Советы и тонкости

Если заголовки страниц содержат специальные символы (например, ä, ö, ü и т.д.), обязательно сохраните файл в кодировке UTF-8. В противном случае скрипт может не найти соответствующие названия страниц в базе данных!

Вы можете создать список страниц с помощью SQL следующим образом:

mysql -e "select page_title from page where page_touched between 20150431000000 and  20150519000000 and page_namespace = 0 into outfile '/tmp/pagelist.csv'"

Это позволит создать список, в котором будут затронуты все заголовки страниц в период между 2015-04-31 и 2015-05-19. Это может быть полезно, если ваша Вики подверглась атаке спам-ботов, а в это время совершались и другие правки.

Другие пространства имён

Вышеуказанная команда охватывает только основное пространство имён. База данных mysql может не знать префиксные имена других пространств имён, поэтому их нужно указывать одно за другим. К примеру, вот так можно удалить все страницы в пространстве имён «Участник», с категорией deleteme и без какого-либо другого текста:

mysql -e "select concat('User:',p.page_title) from page p INNER JOIN revision r ON p.page_latest = r.rev_id INNER JOIN text t ON r.rev_text_id = t.old_id where t.old_text = '{{deleteme}}' and p.page_namespace = 2 into outfile '/tmp/deleteme-user.csv'"

См. также

  • Расширение:DeleteBatch  – расиширение, создающее служебную страницу для этого скрипта обслуживания