Manüel:DeleteBatch.php

This page is a translated version of the page Manual:DeleteBatch.php and the translation is 86% complete.
MediaWiki sürümü:
1.7

deleteBatch.php, bir grup sayfayı silmek için kullanılabilecek maintenance dizininde bulunan bir bakım betiğidir.

Uyarı Uyarı: Bu betikle sayfaları silerken, silinen sayfaları izleyen kullanıcılara silme işlemi hakkında e-posta ile bildirimde bulunulur.

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)


Terminal
$ 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