Manüel:DeleteBatch.php

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

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

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

Kullanım

php deleteBatch.php somepages.txt

(Bu, "somepages.txt" metin dosyasındaki sayfaları siler)

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
Seçenek/Parametre Açıklama
-u <user> 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.
-r <reason> Silme nedeni. Boşsa, kayıtlarda hiçbir sebep gösterilmez.
-i <interval> Her silme işleminden sonra uyku süresi olan saniye sayısı.
<listfile> Her satırın silinecek sayfanın başlığını içerdiği bir dosya (bakım dizininde bulunur).

İ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 isim 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