Manual:deleteBatch.php
Appearance
MediaWiki バージョン: | ≧ 1.7 |
MediaWiki ファイル: deleteBatch.php | |
---|---|
場所: | maintenance/ |
ソース コード: | master • 1.42.3 • 1.41.4 • 1.39.10 |
クラス: | DeleteBatch |
詳細
deleteBatch.php は maintenance
ディレクトリ内にあるメンテナンススクリプトで、ページの一括削除に使用します。
オプション/引数
オプション/引数 | 説明 | 必須かどうか | 既定値 |
---|---|---|---|
listfile | 各行に削除するページのタイトルが記載されたファイル。 | 必須 | |
--u | 記録項目に表示される利用者名。省略すると、Delete page script という利用者として削除されます。 | 省略可能 | Delete page script |
--r | 削除の理由。省略すると、記録に理由は表示されません。 | 省略可能 | |
--i | 削除する度に待機する秒数。 | 省略可能 | 0 |
使用法
php maintenance/deleteBatch.php somepages.txt [ --u| --r| --i ]
(これは "somepages.txt" テキストファイルに記載されたページを削除します)
Terminal
$ php maintenance/deleteBatch.php deleteBatch.txt Page1 Deleted! Page2 Deleted! Page3 Deleted!
リンクされたフォルダーがあるウィキファームでは、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'"
関連項目
- Extension:DeleteBatch – このメンテナンス スクリプトの特別ページ拡張機能
- Manual:deleteRevision.php
- Manual:deleteOldRevisions.php