Manüel:DeleteBatch.php
MediaWiki sürümü: | ≥ 1.7 |
MediaWiki dosyası: deleteBatch.php | |
---|---|
Konum: | maintenance/ |
Kaynak kodu: | master • 1.42.3 • 1.41.4 • 1.39.10 |
Sınıflar: | DeleteBatch |
Details
deleteBatch.php, bir grup sayfayı silmek için kullanılabilecek maintenance
dizininde bulunan bir bakım betiğidir.
Options/Arguments
Seçenek/Bağımsız değişken | Açıklama | Required? | Default |
---|---|---|---|
listfile | Her satırın silinecek sayfanın başlığını içerdiği bir dosya. | Gerekli | |
--u | Günlük girişlerinde gösterilecek olan kullanıcı adı. Boş bırakılırsa, silme işlemleri Sayfa betiğini sil adlı kullanıcıya atfedilir. | İsteğe bağlı | Delete page script |
--r | Silme nedeni. Boşsa, kayıtlarda hiçbir sebep gösterilmez. | İsteğe bağlı | |
--i | Her silme işleminden sonra uyku süresi olan saniye sayısı. | İsteğe bağlı | 0 |
Kullanım
php maintenance/deleteBatch.php somepages.txt [ --u| --r| --i ]
(Bu, "somepages.txt" metin dosyasındaki sayfaları siler)
$ php maintenance/deleteBatch.php deleteBatch.txt Page1 Deleted! Page2 Deleted! Page3 Deleted!
Bağlantılı klasörlerin bulunduğu bir wiki çiftliğinde, LocalSettings.php içeren klasörü değiştirin ve kullanın:
php ./maintenance/deleteBatch.php --conf ./LocalSettings.php --r "reason for deletion" ./deleteBatch.txt
İpuçları ve Püf Noktaları
Sayfa başlıkları özel karakterler içeriyorsa (ä, ö, ü vb. gibi), dosyayı UTF-8 kodlamasına kaydettiğinizden emin olun. Aksi halde, betik veritabanındaki ilgili sayfa adlarını bulamayabilir!
SQL ile bir sayfa listesi oluşturabilirsiniz:
mysql -e "select page_title from page where page_touched between 20150431000000 and 20150519000000 and page_namespace = 0 into outfile '/tmp/pagelist.csv'"
Bu, 2015-04-31 ve 2015-05-19 arasındaki tüm sayfa başlıklarına değinilen bir liste oluşturur. Bu, wikiniz spam botları tarafından saldırıya uğradıysa ve o sırada başka düzenlemeler yapılmışsa faydalı olabilir.
Diğer Ad Alanları
Yukarıdaki komut yalnızca Ana ad alanı öğesini kapsar. MySQL veritabanı, diğer ad alanlarının önek adını bilmiyor olabilir, bu yüzden onları birer birer yapmalıyız. Örneğin, silme kategorisi olan ve başka bir metin olmayan, Kullanıcı ad alanındaki tüm sayfaları silmek için:
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'"
Ayrıca bakınız
- Extension:DeleteBatch – Bu bakım betiğin özel sayfa uzantısı.
- Manual:deleteRevision.php
- Manual:deleteOldRevisions.php