• 08-05-2013, 00:12:17
    #1
    Manuel cache sistemi kullanıyorum ve cache klasöründe biriken dosyaları silmek için bi kod kullanıyorum. Kodu çalıştırdığımda 300 bine yakın dosya var ve sunucu kitleniyor. Php ile bu işlemi yapmak sunucuyu nasıl yorabilir ki?
  • 08-05-2013, 00:21:46
    #2
    hangi kodu kullanıyorsunuz?
  • 08-05-2013, 00:25:17
    #3
    ReQueM adlı üyeden alıntı: mesajı görüntüle
    hangi kodu kullanıyorsunuz?
    @set_time_limit(0);
    $sildim = $_GET["temizle"];
    if($sildim == "tamam") {
    	
            $oku = opendir("onbellek");
            
            while ($sonuc = readdir($oku))
            {
                $sonuck = explode(".",$sonuc);
                $sonuck = end($sonuck);
                
                    if($sonuck == "cache"){
                
                        unlink("onbellek/".$sonuc);
    
                }
    
                    }
    									echo '<p style="font-size:24px;color:green;font-weight:bold;">Cache başarıyla boşaltıldı! <span style="color:#333;"><a href="#" onclick="history.back();">Geri dön!</a></span></p>';
    
    }
    silmek için bu kodu kullanıyorum hocam.
  • 08-05-2013, 00:31:09
    #4
    daha az yorar diye düşünüyorum
    <?php
    foreach(glob("onbellek/*.*") as $dosya){
    	unlink($dosya);
    }
    ?>
    bu arada cache dosyalarında dosya uzantısı yoksa *.* yerine sadece * koy.
  • 08-05-2013, 00:40:01
    #5
    ReQueM adlı üyeden alıntı: mesajı görüntüle
    daha az yorar diye düşünüyorum
    <?php
    foreach(glob("onbellek/*.*") as $dosya){
    	unlink($dosya);
    }
    ?>
    bu arada cache dosyalarında dosya uzantısı yoksa *.* yerine sadece * koy.
    teşekkürler hocam deneyip buradan geri bildirim yaparım.
  • 08-05-2013, 03:24:07
    #6
    $dosya adlı değişkenin her bir işlem sırasında geriye dönük yük almaması için işlem bittikten sonra ram'den atmak lazım.

    <?php 
    foreach(glob("onbellek/*.*") as $dosya){ 
        unlink($dosya);
        unset($dosya); 
    } 
    ?>
  • 08-05-2013, 03:25:31
    #7
    300bine yakın dosya ve tek döngü, sunucunun kitlenmesi için gayet yeterli bir sebep.
  • 08-05-2013, 05:08:35
    #8
    tek döngüye ek olarak linux sunucu dosya sayısı limitleri var.
    tek seferde 300k dosyayı silmek için dosya işlemleri kodu yerine exec ile rm -vrf komutunu kullanabilirsiniz. dosya sistemi php den daha hızlı reaksiyon verecektir muhtemelen.
    ssh den bile silmeye kalksanız 300k dosyayı silmek epey vakit alır.