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

Внимание Внимание: When deleting pages with this script, users that are following pages being deleted will be notified by email about the deletion.

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> Файл, в котором каждая строка содежит название страницы для удаления.

Tips and Tricks

In case the page titles contain special characters (like ä, ö, ü and so on), make sure to save the file in UTF-8 encoding. Otherwise the script may not be able to find the according page names inside the database!

You can create a pagelist with SQL as follows:

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

This would create a list with all page titles touched between 2015-04-31 and 2015-05-19. This might be helpful if your wiki got attacked by spambots, and other edits happened during that time.

Other Namespaces

The above command only covers the Main namespace. The mysql database may not know the prefix name of other namespaces, so we have to do them one by one. For example, to delete all pages in the User namespace, with the deleteme category and no other text:

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  – расиширение, создающее служебную страницу для этого скрипта обслуживания