<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>htcacheclean - Disk arabelleğini temizler - Apache HTTP Sunucusu Sürüm 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.min.js" type="text/javascript">
</script>

<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a></p>
<p class="apache">Apache HTTP Sunucusu Sürüm 2.4</p>
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="http://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="../">Sürüm 2.4</a> &gt; <a href="./">Programlar</a></div><div id="page-content"><div id="preamble"><h1>htcacheclean - Disk arabelleğini temizler</h1>
<div class="toplang">
<p><span>Mevcut Diller: </span><a href="../en/programs/htcacheclean.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/programs/htcacheclean.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/programs/htcacheclean.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/programs/htcacheclean.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>

    <p><code><strong>htcacheclean</strong></code>,
    <code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code> deposunun boyutlarını belli sınırlar
    içinde veya kullanımdaki dosya düğümlerinin sınırları içinde tutmak için
    kullanılır. Bu araç ya elle ya da bir artalan süreci
    olarak çalıştırılır. Artalan süreci olarak çalıştırıldığında, silinecek
    arabellek içeriğini tespit etmek için arabellek dizinlerine belli
    aralıklarla bakmak dışında uykuda olur. Artalan sürecini temiz olarak
    durdurmak için TERM veya INT sinyali göndermeniz yeterlidir. Elle
    çalıştırıldığında, silinecek arabellek içeriğini tespit etmek için
    arabellek dizinlerine bir kereliğine bakar. Bir veya daha fazla URL
    belirtilmesi durumunda arabellekte olanlar arabellekten silinir.</p>
</div>
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#synopsis">Kullanım</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#options">Seçenekler</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#delete">Belli bir URL'nin silinmesi</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#list">Arabellekteki URL'lerin listelenmesi</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#exit">Çıkış Durumu</a></li>
</ul><h3>Ayrıca bakınız:</h3><ul class="seealso"><li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><a href="#comments_section">Yorumlar</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="synopsis" id="synopsis">Kullanım</a></h2>
    <p><code><strong>htcacheclean</strong>
    [ -<strong>D</strong> ]
    [ -<strong>v</strong> ]
    [ -<strong>t</strong> ]
    [ -<strong>r</strong> ]
    [ -<strong>n</strong> ]
    [ -<strong>R</strong><var>boyut</var> ]
    -<strong>p</strong><var>yol</var>
    [ -<strong>l</strong><var>sınır</var> |
    [ -<strong>L</strong><var>sınır</var> ]</code></p>

    <p><code><strong>htcacheclean</strong>
    [ -<strong>n</strong> ]
    [ -<strong>t</strong> ]
    [ -<strong>i</strong> ]
    [ -<strong>P</strong><var>piddosyası</var> ]
    [ -<strong>R</strong><var>boyut</var> ]
    -<strong>d</strong><var>süre</var>
    -<strong>p</strong><var>yol</var>
    [ -<strong>l</strong><var>sınır</var> |
    [ -<strong>L</strong><var>sınır</var> ]</code></p>

    <p><code><strong>htcacheclean</strong>
    [ -<strong>v</strong> ]
    [ -<strong>R</strong><var>boyut</var> ]
    -<strong>p</strong><var>yol</var>
    [ -<strong>a</strong> ]
    [ -<strong>A</strong> ]</code></p>

    <p><code><strong>htcacheclean</strong>
    [ -<strong>D</strong> ]
    [ -<strong>v</strong> ]
    [ -<strong>t</strong> ]
    [ -<strong>R</strong><var>boyut</var> ]
    -<strong>p</strong><var>yol</var>
    <var>url</var></code></p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="options" id="options">Seçenekler</a></h2>
    <dl>
    <dt><code><strong>-d</strong><var> süre</var></code></dt>
    <dd>Artalanda çalışarak <code><var>süre</var></code> dakikada bir
    arabelleği temizler. Bu seçenek <code><strong>-D</strong></code>,
    <code><strong>-v</strong></code> ve <code><strong>-r</strong></code>
    seçenekleri ile birlikte kullanılamaz. Artalan sürecini temiz olarak
    sonlandırmak için <code>SIGTERM</code> veya <code>SIGINT</code> göndermek
    yeterlidir.</dd>

    <dt><code><strong>-D</strong></code></dt>
    <dd>Kuru kuruya çalışıp, hiçbir şeyi silmez.
    <code><strong>-d</strong></code> seçeneği ile birlikte kullanılamaz. Kuru
    çalıştırma sırasında <code><strong>-t</strong></code> seçeneği ile dizinler
    silinmek istenirse, statlarda silinmiş görünen dosya düğümleri silinmiş
    dizinler olarak hesaba katılmaz ve tahmini olarak imlenir.</dd>

    <dt><code><strong>-v</strong></code></dt>
    <dd>Çıktı daha ayrıntılı olur. <code><strong>-d</strong></code> seçeneği
    ile birlikte kullanılamaz.</dd>

    <dt><code><strong>-r</strong></code></dt>
    <dd>İyice temizlik yapılır. Bunun için Apache HTTP sunucusunun
    çalışmadığı varsayılır (aksi takdirde arabellek içeriği bozulabilir).
    <code><strong>-t</strong></code> seçeneğinin de uygulanmasını sağlar.
    <code><strong>-d</strong></code> seçeneği ile birlikte kullanılamaz.</dd>

    <dt><code><strong>-n</strong></code></dt>
    <dd>Nazik olur. Diğer süreçlerin yararına daha yavaş çalışır. (a) disk
    G/Ç işlemlerinde gecikmeler olursa ve (b) çekirdek bu arada başka bir
    süreci öne çekmişse <code><strong>htcacheclean</strong></code> uyumayı
    tercih edecektir.</dd>

    <dt><code><strong>-t</strong></code></dt>
    <dd>Tüm boş dizinleri siler. Öntanımlı olarak, sadece arabellek dosyaları
    silinirse de bazı yapılandırmalarda büyük miktarda dizin oluşturulması bu
    seçeneğin kullanılmasını gerektirebilir. Yapılandırmanız çok sayıda dizin
    gerektiriyorsa ve dosya düğümlerinin veya dosya ayırma tablolarının
    tükenmesi sözkonusu ise bu seçeneğin kullanılması önerilir.</dd>

    <dt><code><strong>-p</strong><var> yol</var></code></dt>
    <dd><code><var>yol</var></code>, disk arabelleğinin kök dizini olarak
    belirtilir. <code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code>
    yönergesinde belirtilen dizin olmalıdır.</dd>

    <dt><code><strong>-P</strong><var>piddosyası</var></code></dt>
    <dd>Artalan süreci olarak çalışmada süreç kimliğinin yazılacağı dosyanın
    adını belirtmek için kullanılır.</dd>

    <dt><code><strong>-R</strong><var>boyut</var></code></dt>
    <dd>Disk bloklarının boyunu denkleştirmek için yuvarlanacak üst boyutu
    belirtmekte kullanılır. Arabellek bölümünün blok boyutunu belirler.</dd>

    <dt><code><strong>-l</strong><var> sınır</var></code></dt>
    <dd><code><var>sınır</var></code>, disk arabelleğinin toplam boyutu
    olarak belirtilir. Değerin öntanımlı olarak bayt cinsinden belirtileceği
    varsayılır. Değerin sonuna kilobayt için <code>K</code>, megabayt
    <code>M</code>, Gbayt için <code>G</code>  harfi konulabilir.</dd>

    <dt><code><strong>-L</strong><var>limit</var></code></dt>
    <dd>Disk arabellek dosyası düğümü toplamının sınırını belirlemekte
    kullanılır. Değerin sonuna kilobayt için <code>K</code>, megabayt
    <code>M</code>, Gbayt için <code>G</code>  harfi konulabilir.</dd>

    <dt><code><strong>-i</strong></code></dt>
    <dd>Akıllı olup sadece disk arabelleği değiştiği zaman çalışır. Bu
    seçenek <code><strong>-d</strong></code> seçeneği ile birlikte
    belirtilmek zorundadır.</dd>

    <dt><code><strong>-a</strong></code></dt>
    <dd>O an arabellekte saklanmakta olan URL'leri listeler. Birden fazla aynı
    URL varsa yalnız biri listelenir.</dd>

    <dt><code><strong>-A</strong></code></dt>
    <dd>O an arabellekte saklanmakta olan URL'leri öznitelikleri ile listeler.
    Öznitelikler şu sırayla verilir: url, header size, body size, status,
    entity version, date, expiry, request time, response time, body present,
    head request</dd>
    </dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="delete" id="delete">Belli bir URL'nin silinmesi</a></h2>
    <p><code><strong>htcacheclean</strong></code> tarafından aktarılan URL'ler
    arabellekten silinir. Bir URL birden fazla mevcutsa hepsi silinir.</p>

    <p>Ters vekilli bir URL silinmişse, etkin URL <strong>Host</strong> başlığı
    <strong>port</strong>, <strong>yol</strong> ve <strong>sorgu</strong> ile
    oluşturulur. Bir sorgu dizgesi olsun olmasın, URL içinde '?' daima açıkça
    belirtilmelidir. Örneğin, <strong>localhost</strong> sunucusundaki
    <strong>/</strong> yolu silinmek istenirse silinecek URL
    <strong>http://localhost:80/?</strong> olurdu.</p>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="list" id="list">Arabellekteki URL'lerin listelenmesi</a></h2>
    <p><code><strong>htcacheclean</strong></code>'e
    <code><strong>-a</strong></code> veya <code><strong>-A</strong></code>
    seçeneğinin aktarılmasıyla, arabellekteki URL'ler bulundukça her satıra bir
    URL gelecek biçemde listelenir. <code><strong>-A</strong></code> seçeneği
    URL'nin ardından arabellek içeriğini tamamını şu sırayla dökümler:</p>

    <dl>
        <dt>url</dt><dd>Öğenin URL'si.</dd>
        <dt>header size</dt><dd>Bayt cinsinden başlık uzunluğu.</dd>
        <dt>body size</dt><dd>Bayt cinsinden gövde uzunluğu.</dd>
        <dt>status</dt><dd>Arabellekteki yanıtın durumu.</dd>
        <dt>entity version</dt><dd>Öğenin silinmeksizin kaç kere
          doğrulandığı.</dd>
        <dt>date</dt><dd>Yanıt tarihi.</dd>
        <dt>expiry</dt><dd>Yanıtın zaman aşımı tarihi.</dd>
        <dt>request time</dt><dd>İsteğin başlama zamanı.</dd>
        <dt>response time</dt><dd>İsteğin bitiş zamanı.</dd>
        <dt>body present</dt><dd>0 ise istekle birlikte gövde saklanmaz, 1 ise
          saklanır.</dd>
        <dt>head request</dt><dd>1 ise, öğe, gövde olmaksızın arabellekli bir
          HEAD isteği içerir, 0 ise içermez.</dd>
    </dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="exit" id="exit">Çıkış Durumu</a></h2>
    <p><code><strong>htcacheclean</strong></code>, tüm işlemler başarıyla
    yerine getirildiğinde <code>0</code>, aksi takdirde <code>1</code>
    döndürür. Bir URL belirtildiğinde, bu URL arablleklenmi ve silinmişse
    <code>0</code>, aksi takdirde <code>2</code> döndürür. URL'nin silinmesi
    sırasında bir hata oluşursa <code>1</code> döndürür.</p>
</div></div>
<div class="bottomlang">
<p><span>Mevcut Diller: </span><a href="../en/programs/htcacheclean.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/programs/htcacheclean.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/programs/htcacheclean.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/programs/htcacheclean.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Yorumlar</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/programs/htcacheclean.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else { 
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2021 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
<p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>