Jump to content

Manual:deleteBatch.php

From mediawiki.org
This page is a translated version of the page Manual:DeleteBatch.php and the translation is 96% complete.
MediaWiki バージョン:
1.7

詳細

deleteBatch.phpmaintenance ディレクトリ内にあるメンテナンススクリプトで、ページの一括削除に使用します。

警告 警告: このスクリプトを使用してページを削除した場合、削除されたページをフォローしている利用者にメールで削除された旨の通知がされます。

オプション/引数

オプション/引数 説明 必須かどうか 既定値
listfile 各行に削除するページのタイトルが記載されたファイル。 必須
--u 記録項目に表示される利用者名。省略すると、Delete page script という利用者として削除されます。 省略可能 Delete page script
--r 削除の理由。省略すると、記録に理由は表示されません。 省略可能
--i 削除する度に待機する秒数。 省略可能 0

使用法

php maintenance/deleteBatch.php somepages.txt [ --u| --r| --i ]

(これは "somepages.txt" テキストファイルに記載されたページを削除します)

Terminal

リンクされたフォルダーがあるウィキファームでは、LocalSettings.php を含むフォルダーに変更して、以下を使用します:

php ./maintenance/deleteBatch.php  --conf ./LocalSettings.php --r "reason for deletion" ./deleteBatch.txt

ヒントとコツ

ページ名に特殊文字 (ä、ö、üなど) が含まれている場合は、必ず 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データベースは他の名前空間の接頭辞名を認識しない可能性があるため、一つずつ処理する必要があります。 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'"

関連項目