{"id":36961,"date":"2025-12-25T14:41:05","date_gmt":"2025-12-25T11:41:05","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=36961"},"modified":"2025-12-25T14:41:05","modified_gmt":"2025-12-25T11:41:05","slug":"logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/","title":{"rendered":"Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme"},"content":{"rendered":"<p><body><\/p>\n<h2>Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>Bilgisayar sistemleri ve \u00fczerinde \u00e7al\u0131\u015fan uygulamalar, faaliyetlerini ve kar\u015f\u0131la\u015ft\u0131klar\u0131 olaylar\u0131 kaydetmek i\u00e7in log (g\u00fcnl\u00fck) dosyalar\u0131 olu\u015fturur. Bu log dosyalar\u0131, sistem y\u00f6neticileri ve geli\u015ftiriciler i\u00e7in paha bi\u00e7ilmez birer bilgi kayna\u011f\u0131d\u0131r. Sistem sa\u011fl\u0131\u011f\u0131n\u0131 izlemek, performans sorunlar\u0131n\u0131 gidermek, g\u00fcvenlik ihlallerini tespit etmek ve uygulama hatalar\u0131n\u0131 ay\u0131klamak gibi bir\u00e7ok kritik g\u00f6revde loglara ba\u015fvurulur. Ancak, zamanla bu log dosyalar\u0131 b\u00fcy\u00fcyerek disk alan\u0131n\u0131 t\u00fcketebilir, sistem performans\u0131n\u0131 etkileyebilir ve okunmas\u0131 zor devasa metin y\u0131\u011f\u0131nlar\u0131na d\u00f6n\u00fc\u015febilir. \u0130\u015fte tam bu noktada, log y\u00f6netimi devreye girer. Log y\u00f6netimi, log dosyalar\u0131n\u0131n d\u00fczenli olarak ar\u015fivlenmesi, s\u0131k\u0131\u015ft\u0131r\u0131lmas\u0131, d\u00f6nd\u00fcr\u00fclmesi (rotasyon) ve eski dosyalar\u0131n silinmesi i\u015flemlerini kapsar. Ubuntu 12.10 gibi sunucu i\u015fletim sistemlerinde bu g\u00f6revi \u00fcstlenen en g\u00fc\u00e7l\u00fc ve yayg\u0131n ara\u00e7lardan biri Logrotate&#8217;tir. Bu makalede, Ubuntu 12.10 \u00f6zelinde Logrotate&#8217;\u0131n ne oldu\u011funu, nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131, nas\u0131l yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ve log dosyalar\u0131n\u0131 etkin bir \u015fekilde y\u00f6netmek i\u00e7in nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 ayr\u0131nt\u0131l\u0131 olarak inceleyece\u011fiz.<\/p>\n<h3>Log Dosyalar\u0131 Neden \u00d6nemlidir?<\/h3>\n<p>Log dosyalar\u0131, bir sistemin ve uygulamalar\u0131n &#8220;kara kutusu&#8221; gibidir. Sistemde olup biten her \u015feyin yaz\u0131l\u0131 bir kayd\u0131n\u0131 tutarlar. Bu kay\u0131tlar, \u00e7e\u015fitli nedenlerle hayati \u00f6neme sahiptir:<\/p>\n<p>*   <strong>Sistem Sa\u011fl\u0131\u011f\u0131 ve Performans \u0130zleme:<\/strong> Loglar, CPU kullan\u0131m\u0131, bellek t\u00fcketimi, disk G\/\u00c7 i\u015flemleri gibi sistem kaynaklar\u0131n\u0131n nas\u0131l kullan\u0131ld\u0131\u011f\u0131na dair ipu\u00e7lar\u0131 verir. Kritik servislerin ba\u015flat\u0131l\u0131p ba\u015flat\u0131lamad\u0131\u011f\u0131, veritaban\u0131 ba\u011flant\u0131 hatalar\u0131 gibi durumlar loglarda g\u00f6r\u00fclebilir. Bu sayede, potansiyel performans darbo\u011fazlar\u0131 veya sistem ar\u0131zalar\u0131 \u00f6nceden tespit edilebilir.<br \/>\n*   <strong>Hata Ay\u0131klama ve Sorun Giderme:<\/strong> Bir uygulama \u00e7\u00f6kt\u00fc\u011f\u00fcnde veya beklenen \u015fekilde \u00e7al\u0131\u015fmad\u0131\u011f\u0131nda, log dosyalar\u0131 hatan\u0131n k\u00f6k nedenini bulmak i\u00e7in ilk bak\u0131lmas\u0131 gereken yerdir. Hata mesajlar\u0131, y\u0131\u011f\u0131n izleri (stack traces) ve di\u011fer hata bilgileri, geli\u015ftiricilerin sorunlar\u0131 h\u0131zl\u0131ca te\u015fhis etmesine yard\u0131mc\u0131 olur.<br \/>\n*   <strong>G\u00fcvenlik Denetimi ve \u0130hlallerini Tespit Etme:<\/strong> Ba\u015far\u0131s\u0131z oturum a\u00e7ma giri\u015fimleri, yetkisiz eri\u015fim denemeleri, g\u00fcvenlik duvar\u0131 reddetmeleri gibi olaylar g\u00fcvenlik loglar\u0131na kaydedilir. Bu loglar, potansiyel g\u00fcvenlik tehditlerini veya ger\u00e7ekle\u015fmi\u015f bir sald\u0131r\u0131y\u0131 tespit etmek ve analiz etmek i\u00e7in kullan\u0131l\u0131r. Yasal uyumluluk gereksinimleri (\u00f6rne\u011fin, GDPR, HIPAA) genellikle belirli bir s\u00fcre boyunca g\u00fcvenlik loglar\u0131n\u0131n saklanmas\u0131n\u0131 zorunlu k\u0131lar.<br \/>\n*   <strong>Yasal Uyumluluk:<\/strong> Bir\u00e7ok sekt\u00f6rde ve \u00fclkede, \u015firketlerin belirli t\u00fcrdeki verileri (i\u015flem loglar\u0131, kullan\u0131c\u0131 eri\u015fim loglar\u0131 vb.) belirli bir s\u00fcre boyunca saklamas\u0131 yasal bir zorunluluktur. Logrotate, bu uyumluluk gereksinimlerini kar\u015f\u0131lamak i\u00e7in log dosyalar\u0131n\u0131n d\u00fczenli olarak ar\u015fivlenmesini ve saklanmas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>Uygulama Davran\u0131\u015f\u0131n\u0131 Anlama:<\/strong> Geli\u015ftiriciler, kullan\u0131c\u0131lar\u0131n uygulamalar\u0131yla nas\u0131l etkile\u015fim kurdu\u011funu, hangi \u00f6zelliklerin daha s\u0131k kullan\u0131ld\u0131\u011f\u0131n\u0131 veya hangi i\u015flevlerin sorunlara yol a\u00e7t\u0131\u011f\u0131n\u0131 anlamak i\u00e7in uygulama loglar\u0131n\u0131 analiz edebilir. Bu bilgiler, \u00fcr\u00fcn geli\u015ftirme ve iyile\u015ftirme s\u00fcre\u00e7lerinde de\u011ferli geri bildirimler sa\u011flar.<\/p>\n<p>Ancak, bu kadar \u00f6nemli bilgilere ev sahipli\u011fi yapan log dosyalar\u0131, kontrols\u00fcz b\u0131rak\u0131ld\u0131\u011f\u0131nda h\u0131zl\u0131ca b\u00fcy\u00fcyebilir. Gigabaytlarca hatta terabaytlarca log verisi, disk alan\u0131n\u0131 doldurabilir, dosya sistemi performans\u0131n\u0131 d\u00fc\u015f\u00fcrebilir ve log dosyalar\u0131n\u0131 a\u00e7ma, okuma ve i\u015fleme s\u00fcrelerini uzatarak sistem y\u00f6neticileri i\u00e7in sorun te\u015fkil edebilir. Bu nedenle, log dosyalar\u0131n\u0131n d\u00fczenli ve otomatik bir \u015fekilde y\u00f6netilmesi zorunludur.<\/p>\n<h3>Logrotate Nedir?<\/h3>\n<p>Logrotate, Unix benzeri i\u015fletim sistemlerinde log dosyalar\u0131n\u0131 otomatik olarak y\u00f6netmek i\u00e7in tasarlanm\u0131\u015f bir yard\u0131mc\u0131 programd\u0131r. Temel amac\u0131, log dosyalar\u0131n\u0131n a\u015f\u0131r\u0131 b\u00fcy\u00fcmesini \u00f6nlemek ve sistem kaynaklar\u0131n\u0131 (\u00f6zellikle disk alan\u0131n\u0131) verimli kullanmakt\u0131r. Logrotate bunu, log dosyalar\u0131n\u0131 belirli aral\u0131klarla d\u00f6nd\u00fcrerek (rotate), s\u0131k\u0131\u015ft\u0131rarak, eski s\u00fcr\u00fcmlerini silerek veya e-posta ile g\u00f6ndererek yapar.<\/p>\n<p><strong>Logrotate&#8217;\u0131n \u00c7al\u0131\u015fma Prensibi:<\/strong><br \/>\nLogrotate, genellikle bir cron i\u015fi (cron job) arac\u0131l\u0131\u011f\u0131yla d\u00fczenli olarak \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. Ubuntu 12.10&#8217;da bu genellikle <code>\/etc\/cron.daily\/logrotate<\/code> beti\u011fi taraf\u0131ndan ger\u00e7ekle\u015ftirilir. Bu betik, <code>\/etc\/logrotate.conf<\/code> ana yap\u0131land\u0131rma dosyas\u0131n\u0131 ve <code>\/etc\/logrotate.d\/<\/code> dizinindeki uygulama \u00f6zel yap\u0131land\u0131rma dosyalar\u0131n\u0131 okur. Bu dosyalarda tan\u0131mlanan kurallara g\u00f6re, Logrotate ilgili log dosyalar\u0131n\u0131 bulur ve a\u015fa\u011f\u0131daki i\u015flemleri ger\u00e7ekle\u015ftirir:<\/p>\n<p>1.  <strong>D\u00f6nd\u00fcrme (Rotation):<\/strong> Mevcut log dosyas\u0131n\u0131n ad\u0131n\u0131 de\u011fi\u015ftirir (\u00f6rne\u011fin, <code>access.log<\/code> -> <code>access.log.1<\/code>). Yeni log kay\u0131tlar\u0131 i\u00e7in ayn\u0131 ada sahip yeni, bo\u015f bir log dosyas\u0131 olu\u015fturur.<br \/>\n2.  <strong>S\u0131k\u0131\u015ft\u0131rma (Compression):<\/strong> D\u00f6nd\u00fcr\u00fclen eski log dosyalar\u0131n\u0131 (\u00f6rne\u011fin, <code>access.log.1<\/code>) s\u0131k\u0131\u015ft\u0131r\u0131r (\u00f6rne\u011fin, <code>access.log.1.gz<\/code>) disk alan\u0131ndan tasarruf etmek i\u00e7in.<br \/>\n3.  <strong>Saklama (Retention):<\/strong> Belirli say\u0131da d\u00f6nd\u00fcr\u00fclm\u00fc\u015f log dosyas\u0131n\u0131 saklar (\u00f6rne\u011fin, son 4 hafta). Daha eski dosyalar\u0131 otomatik olarak siler.<br \/>\n4.  <strong>\u00d6zel \u0130\u015flemler (Post-rotation Scripts):<\/strong> Log dosyas\u0131 d\u00f6nd\u00fcr\u00fcld\u00fckten sonra, ilgili uygulaman\u0131n log dosyas\u0131n\u0131 yeniden a\u00e7mas\u0131n\u0131 veya ba\u015fka \u00f6zel i\u015flemler yapmas\u0131n\u0131 tetiklemek i\u00e7in betikler \u00e7al\u0131\u015ft\u0131rabilir. Bu, uygulaman\u0131n hala eski log dosyas\u0131na yazmaya devam etmesini engellemek i\u00e7in \u00f6nemlidir.<\/p>\n<p><strong>Logrotate&#8217;\u0131n Avantajlar\u0131:<\/strong><\/p>\n<p>*   <strong>Disk Alan\u0131 Tasarrufu:<\/strong> Log dosyalar\u0131n\u0131 s\u0131k\u0131\u015ft\u0131rarak ve eski s\u00fcr\u00fcmlerini silerek disk alan\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde bo\u015falt\u0131r.<br \/>\n*   <strong>Sistem Stabilitesi:<\/strong> Log dosyalar\u0131n\u0131n a\u015f\u0131r\u0131 b\u00fcy\u00fcmesini engelleyerek dosya sistemi performans\u0131n\u0131n d\u00fc\u015fmesini ve sistemin karars\u0131z hale gelmesini \u00f6nler.<br \/>\n*   <strong>D\u00fczenli Log Y\u00f6netimi:<\/strong> Log y\u00f6netimi g\u00f6revlerini otomatikle\u015ftirir, b\u00f6ylece y\u00f6neticilerin manuel m\u00fcdahalesine gerek kalmaz.<br \/>\n*   <strong>Kolay Analiz:<\/strong> Daha k\u00fc\u00e7\u00fck, y\u00f6netilebilir log dosyalar\u0131, sorun giderme ve analiz s\u00fcre\u00e7lerini kolayla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>Esneklik:<\/strong> \u00c7ok \u00e7e\u015fitli yap\u0131land\u0131rma se\u00e7enekleri sunarak farkl\u0131 uygulamalar\u0131n ve sistemlerin \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re uyarlanabilir.<\/p>\n<h3>Ubuntu 12.10 \u00dczerinde Logrotate Kurulumu ve Temelleri<\/h3>\n<p>Ubuntu 12.10 gibi \u00e7o\u011fu modern Linux da\u011f\u0131t\u0131m\u0131nda Logrotate, varsay\u0131lan olarak kurulu gelir. Ancak, kurulu olup olmad\u0131\u011f\u0131n\u0131 veya bir g\u00fcncellemeye ihtiyac\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek her zaman iyi bir uygulamad\u0131r.<\/p>\n<p><strong>Kurulum Kontrol\u00fc:<\/strong><br \/>\nLogrotate&#8217;\u0131n sisteminizde y\u00fckl\u00fc olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in terminalde a\u015fa\u011f\u0131daki komutlar\u0131 kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">dpkg -l logrotate<\/code><\/pre>\n<p>Bu komut, Logrotate paketinin kurulu olup olmad\u0131\u011f\u0131n\u0131 ve s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6sterecektir. E\u011fer kuruluysa, \u00e7\u0131kt\u0131da <code>ii logrotate<\/code> ile ba\u015flayan bir sat\u0131r g\u00f6receksiniz.<\/p>\n<p>Alternatif olarak, Logrotate y\u00fcr\u00fct\u00fclebilir dosyas\u0131n\u0131n sistem PATH&#8217;inizde olup olmad\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">which logrotate<\/code><\/pre>\n<p>E\u011fer kuruluysa, genellikle <code>\/usr\/sbin\/logrotate<\/code> gibi bir yol d\u00f6nd\u00fcrecektir.<\/p>\n<p><strong>Kurulum Gerekirse:<\/strong><br \/>\nE\u011fer Logrotate kurulu de\u011filse veya bir nedenle kald\u0131r\u0131lm\u0131\u015fsa, a\u015fa\u011f\u0131daki komutlarla kolayca kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\nsudo apt-get install logrotate<\/code><\/pre>\n<p>Bu komutlar, paket listesini g\u00fcncelleyecek ve Logrotate paketini sisteminize y\u00fckleyecektir.<\/p>\n<h3>Logrotate Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h3>\n<p>Logrotate&#8217;\u0131n \u00e7al\u0131\u015fma mekanizmas\u0131, \u00fc\u00e7 ana bile\u015fenin etkile\u015fimiyle ger\u00e7ekle\u015fir:<\/p>\n<p>1.  <strong>Ana Yap\u0131land\u0131rma Dosyas\u0131 (<code>\/etc\/logrotate.conf<\/code>):<\/strong> Bu dosya, Logrotate&#8217;\u0131n global davran\u0131\u015f\u0131n\u0131 tan\u0131mlayan varsay\u0131lan ayarlar\u0131 i\u00e7erir. Ayr\u0131ca, <code>\/etc\/logrotate.d\/<\/code> dizinindeki uygulama \u00f6zel yap\u0131land\u0131rma dosyalar\u0131n\u0131n dahil edilmesini sa\u011flar.<br \/>\n2.  <strong>Uygulama \u00d6zel Yap\u0131land\u0131rma Dosyalar\u0131 (<code>\/etc\/logrotate.d\/<\/code>):<\/strong> Bu dizin, Apache, Nginx, MySQL, syslog gibi farkl\u0131 uygulamalar i\u00e7in \u00f6zel logrotate kurallar\u0131n\u0131 i\u00e7eren ayr\u0131 yap\u0131land\u0131rma dosyalar\u0131n\u0131 bar\u0131nd\u0131r\u0131r. Bu mod\u00fcler yap\u0131, her uygulaman\u0131n loglama gereksinimlerini ayr\u0131 ayr\u0131 y\u00f6netmeyi kolayla\u015ft\u0131r\u0131r.<br \/>\n3.  <strong>Cron Entegrasyonu (<code>\/etc\/cron.daily\/logrotate<\/code>):<\/strong> Logrotate&#8217;\u0131n d\u00fczenli olarak \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan bir cron beti\u011fidir. Ubuntu 12.10&#8217;da, <code>\/etc\/cron.daily\/logrotate<\/code> beti\u011fi, sistem taraf\u0131ndan her g\u00fcn otomatik olarak \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. Bu betik, <code>\/usr\/sbin\/logrotate \/etc\/logrotate.conf<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak Logrotate&#8217;\u0131 tetikler.<\/p>\n<p><strong>\u00c7al\u0131\u015fma Ak\u0131\u015f\u0131 \u00d6zetle:<\/strong><\/p>\n<p>*   Her g\u00fcn, <code>cron<\/code> servisi <code>\/etc\/cron.daily\/logrotate<\/code> beti\u011fini \u00e7al\u0131\u015ft\u0131r\u0131r.<br \/>\n*   Bu betik, <code>logrotate \/etc\/logrotate.conf<\/code> komutunu y\u00fcr\u00fct\u00fcr.<br \/>\n*   <code>logrotate<\/code> program\u0131, <code>\/etc\/logrotate.conf<\/code> dosyas\u0131n\u0131 okur.<br \/>\n*   <code>logrotate.conf<\/code> dosyas\u0131ndaki <code>include \/etc\/logrotate.d<\/code> direktifi sayesinde, Logrotate <code>\/etc\/logrotate.d\/<\/code> dizinindeki t\u00fcm yap\u0131land\u0131rma dosyalar\u0131n\u0131 da okur.<br \/>\n*   Logrotate, okudu\u011fu t\u00fcm yap\u0131land\u0131rma dosyalar\u0131ndaki kurallara g\u00f6re log dosyalar\u0131n\u0131n d\u00f6nd\u00fcr\u00fclmesi gerekip gerekmedi\u011fini kontrol eder (son d\u00f6nd\u00fcrme zaman\u0131, dosya boyutu vb. kriterlere g\u00f6re).<br \/>\n*   D\u00f6nd\u00fcr\u00fclmesi gereken log dosyalar\u0131 i\u00e7in tan\u0131mlanan i\u015flemleri (d\u00f6nd\u00fcrme, s\u0131k\u0131\u015ft\u0131rma, silme, betik \u00e7al\u0131\u015ft\u0131rma) ger\u00e7ekle\u015ftirir.<br \/>\n*   Logrotate, her bir log dosyas\u0131n\u0131n son d\u00f6nd\u00fcrme zaman\u0131n\u0131 ve durumunu <code>\/var\/lib\/logrotate\/status<\/code> dosyas\u0131nda tutar. Bu dosya, Logrotate&#8217;\u0131n bir sonraki \u00e7al\u0131\u015ft\u0131\u011f\u0131nda hangi loglar\u0131n d\u00f6nd\u00fcr\u00fclmesi gerekti\u011fini bilmesini sa\u011flar.<\/p>\n<h3><code>\/etc\/logrotate.conf<\/code> Dosyas\u0131n\u0131n \u0130ncelenmesi<\/h3>\n<p><code>\/etc\/logrotate.conf<\/code> dosyas\u0131, Logrotate&#8217;\u0131n genel davran\u0131\u015f\u0131n\u0131 ve t\u00fcm log dosyalar\u0131 i\u00e7in ge\u00e7erli olabilecek varsay\u0131lan ayarlar\u0131 tan\u0131mlar. Bu dosyan\u0131n i\u00e7eri\u011fi genellikle a\u015fa\u011f\u0131daki gibi bir yap\u0131ya sahiptir:<\/p>\n<pre><code class=\"language-\"># See \"man logrotate\" for details\n\n<h2>rotate log files weekly<\/h2>\nweekly\n\n<h2>use the syslog group by default, since this is the owning group<\/h2>\n<h2>of \/var\/log\/syslog.<\/h2>\nsu root syslog\n\n<h2>keep 4 weeks worth of backlogs<\/h2>\nrotate 4\n\n<h2>create new (empty) log files after rotating old ones<\/h2>\ncreate\n\n<h2>uncomment this if you want your log files compressed<\/h2>\ncompress\n\n<h2>RPM packages drop logrotate configuration into this directory<\/h2>\ninclude \/etc\/logrotate.d<\/code><\/pre>\n<p>Yukar\u0131daki \u00f6rnekte yer alan temel direktifleri ve anlamlar\u0131n\u0131 inceleyelim:<\/p>\n<p>*   <code>weekly<\/code>: Log dosyalar\u0131n\u0131n haftal\u0131k olarak d\u00f6nd\u00fcr\u00fclece\u011fini belirtir. Di\u011fer se\u00e7enekler <code>daily<\/code>, <code>monthly<\/code> ve <code>yearly<\/code>&#8216;dir.<br \/>\n*   <code>su root syslog<\/code>: Logrotate&#8217;\u0131n log dosyalar\u0131n\u0131 d\u00f6nd\u00fcrme ve yeni dosyalar\u0131 olu\u015fturma i\u015flemlerini <code>root<\/code> kullan\u0131c\u0131s\u0131 ve <code>syslog<\/code> grubu alt\u0131nda yapmas\u0131n\u0131 sa\u011flar. Bu, \u00f6zellikle <code>postrotate<\/code> veya <code>prerotate<\/code> betiklerinin belirli izinlere ihtiya\u00e7 duydu\u011fu durumlarda faydal\u0131d\u0131r.<br \/>\n*   <code>rotate 4<\/code>: En fazla 4 adet d\u00f6nd\u00fcr\u00fclm\u00fc\u015f log dosyas\u0131n\u0131n saklanaca\u011f\u0131n\u0131 belirtir. \u00d6rne\u011fin, <code>access.log.1<\/code>, <code>access.log.2<\/code>, <code>access.log.3<\/code>, <code>access.log.4<\/code>. Be\u015finci bir d\u00f6nd\u00fcrme ger\u00e7ekle\u015fti\u011finde, <code>access.log.4<\/code> silinir ve di\u011ferleri birer s\u0131ra kayar.<br \/>\n*   <code>create<\/code>: Eski log dosyas\u0131 d\u00f6nd\u00fcr\u00fcld\u00fckten sonra ayn\u0131 isimde yeni, bo\u015f bir log dosyas\u0131 olu\u015fturulmas\u0131n\u0131 sa\u011flar. Bu, uygulaman\u0131n yeni loglar\u0131 yazmaya devam etmesi i\u00e7in gereklidir.<br \/>\n*   <code>compress<\/code>: D\u00f6nd\u00fcr\u00fclen log dosyalar\u0131n\u0131n s\u0131k\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 sa\u011flar (genellikle <code>gzip<\/code> kullanarak <code>.gz<\/code> uzant\u0131s\u0131yla). Bu, disk alan\u0131ndan tasarruf etmenin ana yollar\u0131ndan biridir.<br \/>\n*   <code>include \/etc\/logrotate.d<\/code>: Bu direktif, Logrotate&#8217;a <code>\/etc\/logrotate.d\/<\/code> dizinindeki t\u00fcm yap\u0131land\u0131rma dosyalar\u0131n\u0131 okumas\u0131n\u0131 s\u00f6yler. Bu, mod\u00fcler yap\u0131land\u0131rman\u0131n temelidir.<\/p>\n<p>Di\u011fer yayg\u0131n global direktifler \u015funlard\u0131r:<\/p>\n<p>*   <code>delaycompress<\/code>: Log dosyas\u0131 ilk d\u00f6nd\u00fcr\u00fcld\u00fc\u011f\u00fcnde s\u0131k\u0131\u015ft\u0131rmaz, bir sonraki d\u00f6nd\u00fcrmede s\u0131k\u0131\u015ft\u0131r\u0131r. Bu, uygulaman\u0131n hala \u00f6nceki log dosyas\u0131na yaz\u0131yor olabilece\u011fi durumlarda faydal\u0131d\u0131r.<br \/>\n*   <code>missingok<\/code>: Log dosyas\u0131 bulunamazsa hata vermemesini sa\u011flar.<br \/>\n*   <code>notifempty<\/code>: Log dosyas\u0131 bo\u015fsa d\u00f6nd\u00fcrme i\u015flemi yapmamas\u0131n\u0131 sa\u011flar.<br \/>\n*   <code>dateext<\/code>: D\u00f6nd\u00fcr\u00fclen log dosyalar\u0131na tarih uzant\u0131s\u0131 ekler (\u00f6rne\u011fin, <code>access.log-20230101.gz<\/code>). Bu, s\u0131ral\u0131 numaralar yerine tarihe g\u00f6re loglar\u0131 takip etmeyi kolayla\u015ft\u0131r\u0131r.<br \/>\n*   <code>errors user@example.com<\/code>: Logrotate \u00e7al\u0131\u015f\u0131rken bir hata olu\u015fursa, belirtilen e-posta adresine hata raporu g\u00f6nderir.<\/p>\n<p>Bu global ayarlar, <code>\/etc\/logrotate.d\/<\/code> dizinindeki uygulama \u00f6zel yap\u0131land\u0131rma dosyalar\u0131nda belirtilen \u00f6zel ayarlar taraf\u0131ndan ge\u00e7ersiz k\u0131l\u0131nabilir.<\/p>\n<h3>Uygulama \u00d6zel Yap\u0131land\u0131rmalar\u0131: <code>\/etc\/logrotate.d\/<\/code><\/h3>\n<p>Logrotate&#8217;\u0131n g\u00fcc\u00fcn\u00fcn b\u00fcy\u00fck bir k\u0131sm\u0131, her uygulama i\u00e7in \u00f6zelle\u015ftirilmi\u015f yap\u0131land\u0131rma dosyalar\u0131 olu\u015fturma yetene\u011finden gelir. Bu dosyalar <code>\/etc\/logrotate.d\/<\/code> dizininde bulunur ve genellikle uygulaman\u0131n ad\u0131yla an\u0131l\u0131r (\u00f6rne\u011fin, <code>apache2<\/code>, <code>mysql<\/code>, <code>nginx<\/code>, <code>syslog<\/code>).<\/p>\n<p><strong>Neden Ayr\u0131 Dosyalar Kullan\u0131l\u0131r?<\/strong><br \/>\n*   <strong>Mod\u00fclerlik:<\/strong> Her uygulaman\u0131n loglama gereksinimleri farkl\u0131 olabilir. Ayr\u0131 dosyalar, her bir uygulaman\u0131n log y\u00f6netimi politikalar\u0131n\u0131 ba\u011f\u0131ms\u0131z olarak tan\u0131mlamay\u0131 ve y\u00f6netmeyi sa\u011flar.<br \/>\n*   <strong>Kolay Y\u00f6netim:<\/strong> Yeni bir uygulama y\u00fcklendi\u011finde veya mevcut bir uygulaman\u0131n loglama davran\u0131\u015f\u0131 de\u011fi\u015fti\u011finde, sadece ilgili yap\u0131land\u0131rma dosyas\u0131n\u0131 d\u00fczenlemek yeterlidir.<br \/>\n*   <strong>\u00c7ak\u0131\u015fmalar\u0131 \u00d6nleme:<\/strong> Farkl\u0131 uygulamalar\u0131n logrotate ayarlar\u0131n\u0131n birbirini etkilemesini engeller.<\/p>\n<p><strong>\u00d6rnek Bir Yap\u0131land\u0131rma Dosyas\u0131 \u0130\u00e7eri\u011fi:<\/strong><br \/>\n\u015eimdi, yayg\u0131n bir senaryo olan Nginx web sunucusu i\u00e7in bir \u00f6rnek yap\u0131land\u0131rma dosyas\u0131 (<code>\/etc\/logrotate.d\/nginx<\/code>) \u00fczerinden Logrotate direktiflerini daha detayl\u0131 inceleyelim:<\/p>\n<pre><code class=\"language-\">\/var\/log\/nginx\/*.log {\n    daily\n    missingok\n    rotate 14\n    compress\n    delaycompress\n    notifempty\n    create 0640 www-data adm\n    sharedscripts\n    postrotate\n        invoke-rc.d nginx rotate > \/dev\/null 2>&1\n    endscript\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma blo\u011fu, <code>\/var\/log\/nginx\/<\/code> dizini alt\u0131ndaki t\u00fcm <code>.log<\/code> uzant\u0131l\u0131 dosyalar i\u00e7in ge\u00e7erli olacakt\u0131r. Her bir direktifin anlam\u0131 \u015funlard\u0131r:<\/p>\n<p><em>   <code>\/var\/log\/nginx\/<\/em>.log<\/code>: Bu, log dosyalar\u0131n\u0131n yolunu ve adland\u0131rma desenini belirtir. Logrotate bu desenle e\u015fle\u015fen t\u00fcm dosyalar\u0131 y\u00f6netir. Birden fazla dosya yolu virg\u00fclle ayr\u0131labilir.<br \/>\n*   <code>daily<\/code>: Log dosyalar\u0131n\u0131n g\u00fcnl\u00fck olarak d\u00f6nd\u00fcr\u00fclece\u011fini belirtir.<br \/>\n*   <code>missingok<\/code>: E\u011fer belirtilen log dosyalar\u0131 bulunamazsa, Logrotate hata vermeden bir sonraki log dosyas\u0131na ge\u00e7ecektir. Bu, \u00f6zellikle baz\u0131 log dosyalar\u0131n\u0131n her zaman var olmayabilece\u011fi durumlarda kullan\u0131\u015fl\u0131d\u0131r.<br \/>\n*   <code>rotate 14<\/code>: En fazla 14 adet d\u00f6nd\u00fcr\u00fclm\u00fc\u015f log dosyas\u0131n\u0131n saklanaca\u011f\u0131n\u0131 belirtir. Daha eski dosyalar silinecektir.<br \/>\n*   <code>compress<\/code>: D\u00f6nd\u00fcr\u00fclen log dosyalar\u0131n\u0131 s\u0131k\u0131\u015ft\u0131r\u0131r (genellikle <code>gzip<\/code> ile <code>.gz<\/code> uzant\u0131l\u0131).<br \/>\n*   <code>delaycompress<\/code>: S\u0131k\u0131\u015ft\u0131rma i\u015flemini bir sonraki d\u00f6nd\u00fcrmeye erteler. Yani, <code>nginx.log.1<\/code> d\u00f6nd\u00fcr\u00fcld\u00fc\u011f\u00fcnde s\u0131k\u0131\u015ft\u0131r\u0131lmaz, ancak bir sonraki d\u00f6nd\u00fcrmede <code>nginx.log.2<\/code> oldu\u011funda s\u0131k\u0131\u015ft\u0131r\u0131l\u0131r. Bu, <code>postrotate<\/code> beti\u011finin \u00e7al\u0131\u015fmas\u0131 s\u0131ras\u0131nda uygulaman\u0131n hala <code>nginx.log.1<\/code>&#8216;e yazma ihtimaline kar\u015f\u0131 bir \u00f6nlemdir.<br \/>\n*   <code>notifempty<\/code>: Log dosyas\u0131 bo\u015fsa, d\u00f6nd\u00fcrme i\u015flemi ger\u00e7ekle\u015ftirilmez.<br \/>\n*   <code>create 0640 www-data adm<\/code>: Eski log dosyas\u0131 d\u00f6nd\u00fcr\u00fcld\u00fckten sonra, yeni ve bo\u015f bir log dosyas\u0131 olu\u015fturulur. Bu direktif, yeni dosyan\u0131n izinlerini (<code>0640<\/code>), sahibini (<code>www-data<\/code>) ve grubunu (<code>adm<\/code>) belirtir. Bu, uygulaman\u0131n (Nginx) yeni log dosyas\u0131na do\u011fru izinlerle yazabilmesi i\u00e7in kritik \u00f6neme sahiptir.<br \/>\n<em>   <code>sharedscripts<\/code>: Bu, <code>\/var\/log\/nginx\/<\/em>.log<\/code> desenine uyan birden fazla log dosyas\u0131 olsa bile, <code>prerotate<\/code> ve <code>postrotate<\/code> betiklerinin yaln\u0131zca bir kez \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 sa\u011flar. Bu direktif kullan\u0131lmazsa, her log dosyas\u0131 i\u00e7in ayr\u0131 ayr\u0131 betikler \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r ki bu genellikle istenmez.<br \/>\n*   <code>postrotate<\/code> \/ <code>endscript<\/code>: Bu blok, log dosyas\u0131 d\u00f6nd\u00fcr\u00fcld\u00fckten ve s\u0131k\u0131\u015ft\u0131r\u0131ld\u0131ktan sonra \u00e7al\u0131\u015ft\u0131r\u0131lacak betikleri tan\u0131mlar. Nginx \u00f6rne\u011finde, <code>invoke-rc.d nginx rotate<\/code> komutu, Nginx servisine log dosyalar\u0131n\u0131 yeniden a\u00e7mas\u0131 gerekti\u011fini bildirir. Bu, Nginx&#8217;in eski log dosyas\u0131na yazmaya devam etmesini engeller ve yeni, bo\u015f log dosyas\u0131na yazmaya ba\u015flamas\u0131n\u0131 sa\u011flar. <code>> \/dev\/null 2>&1<\/code> \u00e7\u0131kt\u0131y\u0131 susturur.<br \/>\n    *   <code>prerotate<\/code> \/ <code>endscript<\/code>: Log dosyas\u0131 d\u00f6nd\u00fcr\u00fclmeden \u00f6nce \u00e7al\u0131\u015ft\u0131r\u0131lacak betikleri tan\u0131mlar. Genellikle, log dosyas\u0131 yaz\u0131m\u0131n\u0131 ge\u00e7ici olarak durdurmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p><strong>Di\u011fer \u00d6nemli Direktifler:<\/strong><\/p>\n<p>*   <code>copytruncate<\/code>: Bu direktif, log dosyas\u0131n\u0131 d\u00f6nd\u00fcrmek yerine, mevcut log dosyas\u0131n\u0131n bir kopyas\u0131n\u0131 olu\u015fturur ve ard\u0131ndan orijinal dosyay\u0131 s\u0131f\u0131rlar (truncate eder). Bu, uygulaman\u0131n log dosyas\u0131n\u0131 kapat\u0131p yeniden a\u00e7mas\u0131na gerek kalmadan log d\u00f6nd\u00fcrmeyi sa\u011flar. Ancak, log kay\u0131plar\u0131na yol a\u00e7abilir, \u00e7\u00fcnk\u00fc kopyalama ve s\u0131f\u0131rlama aras\u0131nda ge\u00e7en s\u00fcrede yaz\u0131lan loglar kaybolabilir. Genellikle <code>postrotate<\/code> betikleriyle birlikte <code>create<\/code> kullanmak daha g\u00fcvenli bir yakla\u015f\u0131md\u0131r.<br \/>\n*   <code>ifempty<\/code>: Log dosyas\u0131 bo\u015f olsa bile d\u00f6nd\u00fcrme i\u015flemi yapar. <code>notifempty<\/code>&#8216;nin tersidir.<br \/>\n*   <code>olddir <dizin><\/code>: D\u00f6nd\u00fcr\u00fclen log dosyalar\u0131n\u0131n belirtilen bir dizine ta\u015f\u0131nmas\u0131n\u0131 sa\u011flar. \u00d6rne\u011fin, <code>olddir \/var\/log\/nginx\/old<\/code>.<br \/>\n*   <code>mail <adres><\/code>: D\u00f6nd\u00fcr\u00fclen log dosyalar\u0131n\u0131 belirtilen e-posta adresine g\u00f6nderir.<br \/>\n*   <code>nomail<\/code>: D\u00f6nd\u00fcr\u00fclen log dosyalar\u0131n\u0131 e-posta ile g\u00f6ndermez (varsay\u0131lan davran\u0131\u015ft\u0131r).<br \/>\n*   <code>firstaction<\/code> \/ <code>lastaction<\/code>: T\u00fcm yap\u0131land\u0131rma dosyalar\u0131 i\u015flenmeden \u00f6nce veya sonra bir kez \u00e7al\u0131\u015ft\u0131r\u0131lacak betikleri tan\u0131mlar. <code>prerotate<\/code> ve <code>postrotate<\/code>&#8216;ten farkl\u0131 olarak, bunlar belirli bir log dosyas\u0131yla ili\u015fkili de\u011fildir.<\/p>\n<h3>Logrotate Yap\u0131land\u0131rmalar\u0131n\u0131 Test Etme<\/h3>\n<p>Logrotate yap\u0131land\u0131rmalar\u0131n\u0131 ger\u00e7ek log dosyalar\u0131 \u00fczerinde \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce test etmek \u00e7ok \u00f6nemlidir. Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir Logrotate, \u00f6nemli loglar\u0131n kaybolmas\u0131na veya sistemin beklenmedik \u015fekilde davranmas\u0131na neden olabilir.<\/p>\n<p><strong>1. Hata Ay\u0131klama (Debug) Modu:<\/strong><br \/>\nHata ay\u0131klama modu, Logrotate&#8217;\u0131n ne yapaca\u011f\u0131n\u0131 g\u00f6sterir, ancak ger\u00e7ekte hi\u00e7bir i\u015flem ger\u00e7ekle\u015ftirmez. Bu, yap\u0131land\u0131rma dosyan\u0131zdaki hatalar\u0131 veya beklenmedik davran\u0131\u015flar\u0131 tespit etmek i\u00e7in en g\u00fcvenli yoldur.<\/p>\n<pre><code class=\"language-bash\">sudo logrotate -d \/etc\/logrotate.conf<\/code><\/pre>\n<p>Bu komut, Logrotate&#8217;\u0131n t\u00fcm yap\u0131land\u0131rma dosyalar\u0131n\u0131 okuyacak ve her bir log dosyas\u0131 i\u00e7in hangi i\u015flemlerin yap\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayan ayr\u0131nt\u0131l\u0131 bir \u00e7\u0131kt\u0131 verecektir. \u00c7\u0131kt\u0131y\u0131 dikkatlice inceleyin ve beklentilerinizle uyu\u015fup uyu\u015fmad\u0131\u011f\u0131n\u0131 kontrol edin. \u00d6zellikle <code>running postrotate script<\/code> gibi betiklerin do\u011fru zamanda ve do\u011fru komutlarla \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131na dikkat edin.<\/p>\n<p><strong>2. Ayr\u0131nt\u0131l\u0131 (Verbose) Mod:<\/strong><br \/>\nAyr\u0131nt\u0131l\u0131 mod, Logrotate&#8217;\u0131n ger\u00e7ekten ger\u00e7ekle\u015ftirdi\u011fi i\u015flemleri g\u00f6sterir, ancak hata ay\u0131klama modu kadar detayl\u0131 de\u011fildir. Bu mod, Logrotate&#8217;\u0131n normal bir \u00e7al\u0131\u015ft\u0131rmas\u0131n\u0131n \u00e7\u0131kt\u0131s\u0131n\u0131 g\u00f6rmek istedi\u011finizde kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo logrotate -v \/etc\/logrotate.conf<\/code><\/pre>\n<p>Bu, Logrotate&#8217;\u0131n hangi log dosyalar\u0131n\u0131 i\u015fledi\u011fini ve hangi eylemleri ger\u00e7ekle\u015ftirdi\u011fini \u00f6zetleyecektir.<\/p>\n<p><strong>3. Zorla (Force) Modu (Dikkatli Kullan\u0131n!):<\/strong><br \/>\nZorla modu (<code>-f<\/code>), Logrotate&#8217;\u0131n ko\u015fullara bakmaks\u0131z\u0131n (\u00f6rne\u011fin, d\u00f6nd\u00fcrme s\u00fcresi dolmam\u0131\u015f olsa bile) t\u00fcm log dosyalar\u0131n\u0131 d\u00f6nd\u00fcrmesini sa\u011flar. Bu, \u00f6zellikle yeni bir yap\u0131land\u0131rma dosyas\u0131n\u0131 test ederken veya bir sorunu h\u0131zl\u0131ca gidermek i\u00e7in bir kerelik d\u00f6nd\u00fcrme yapmak istedi\u011finizde kullan\u0131\u015fl\u0131d\u0131r. Ancak, \u00f6nemli loglar\u0131n beklenenden daha erken silinmesine neden olabilece\u011fi i\u00e7in dikkatli kullan\u0131lmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo logrotate -f \/etc\/logrotate.conf<\/code><\/pre>\n<p>Bu komutu kullanmadan \u00f6nce her zaman yedekleme yapman\u0131z veya test ortam\u0131nda denemeniz \u00f6nerilir.<\/p>\n<p><strong>Test Senaryolar\u0131 ve \u00c7\u0131kt\u0131lar\u0131n Yorumlanmas\u0131:<\/strong><br \/>\n*   <strong>Logrotate durum dosyas\u0131:<\/strong> <code>logrotate<\/code>&#8216;\u0131n durumunu izledi\u011fi dosya <code>\/var\/lib\/logrotate\/status<\/code>&#8216;tur. Bu dosya, her bir log dosyas\u0131n\u0131n en son ne zaman d\u00f6nd\u00fcr\u00fcld\u00fc\u011f\u00fcn\u00fc kaydeder. Test sonras\u0131 bu dosyan\u0131n g\u00fcncellendi\u011fini kontrol edin.<br \/>\n*   <strong>Dosya izinleri:<\/strong> <code>create<\/code> direktifi ile olu\u015fturulan yeni log dosyalar\u0131n\u0131n do\u011fru izinlere, sahibine ve grubuna sahip oldu\u011fundan emin olun.<br \/>\n*   <strong>S\u0131k\u0131\u015ft\u0131rma:<\/strong> D\u00f6nd\u00fcr\u00fclen log dosyalar\u0131n\u0131n s\u0131k\u0131\u015ft\u0131r\u0131l\u0131p s\u0131k\u0131\u015ft\u0131r\u0131lmad\u0131\u011f\u0131n\u0131 (<code>.gz<\/code> uzant\u0131s\u0131) kontrol edin.<br \/>\n*   <strong>Betik \u00e7al\u0131\u015ft\u0131rma:<\/strong> <code>postrotate<\/code> veya <code>prerotate<\/code> betiklerinin do\u011fru \u015fekilde \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol edin. \u00d6rne\u011fin, Nginx i\u00e7in <code>invoke-rc.d nginx rotate<\/code> komutunun Nginx&#8217;i yeniden y\u00fckleyip y\u00fcklemedi\u011fini (veya loglar\u0131 yeniden a\u00e7\u0131p a\u00e7mad\u0131\u011f\u0131n\u0131) do\u011frulay\u0131n.<br \/>\n*   <strong>Disk alan\u0131:<\/strong> Logrotate&#8217;\u0131n \u00e7al\u0131\u015fmas\u0131ndan sonra disk alan\u0131nda beklenen bir azalma olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<h3>\u00d6rnek Uygulama: Apache Loglar\u0131n\u0131 Y\u00f6netme<\/h3>\n<p>Apache HTTP Sunucusu, web sunucular\u0131 aras\u0131nda en yayg\u0131n kullan\u0131lanlardan biridir ve do\u011fal olarak \u00e7ok say\u0131da log dosyas\u0131 \u00fcretir. Ubuntu 12.10&#8217;da Apache2 i\u00e7in Logrotate yap\u0131land\u0131rmas\u0131 genellikle <code>\/etc\/logrotate.d\/apache2<\/code> dosyas\u0131nda bulunur.<\/p>\n<p><strong>Tipik <code>\/etc\/logrotate.d\/apache2<\/code> i\u00e7eri\u011fi:<\/strong><\/p>\n<pre><code class=\"language-\">\/var\/log\/apache2\/*.log {\n    weekly\n    missingok\n    rotate 52\n    compress\n    delaycompress\n    notifempty\n    create 0640 root adm\n    sharedscripts\n    postrotate\n        if \/etc\/init.d\/apache2 status > \/dev\/null ; then \\\n            invoke-rc.d apache2 rotate > \/dev\/null 2>&1; \\\n        fi;\n    endscript\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rmay\u0131 inceleyelim:<\/p>\n<p><em>   <code>\/var\/log\/apache2\/<\/em>.log<\/code>: Apache&#8217;nin eri\u015fim (<code>access.log<\/code>) ve hata (<code>error.log<\/code>) loglar\u0131 dahil olmak \u00fczere t\u00fcm log dosyalar\u0131n\u0131 kapsar.<br \/>\n*   <code>weekly<\/code>: Log dosyalar\u0131 haftal\u0131k olarak d\u00f6nd\u00fcr\u00fcl\u00fcr.<br \/>\n*   <code>rotate 52<\/code>: Bir y\u0131ll\u0131k log dosyas\u0131n\u0131 (52 hafta) saklar. Bu, uzun s\u00fcreli analiz ve yasal uyumluluk i\u00e7in faydal\u0131d\u0131r.<br \/>\n*   <code>create 0640 root adm<\/code>: Yeni Apache log dosyalar\u0131 <code>root<\/code> sahibi ve <code>adm<\/code> grubu ile <code>0640<\/code> izinleriyle olu\u015fturulur. Apache genellikle <code>www-data<\/code> kullan\u0131c\u0131s\u0131 alt\u0131nda \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan, <code>adm<\/code> grubunun <code>www-data<\/code> kullan\u0131c\u0131s\u0131n\u0131n yeni log dosyas\u0131na yazabilmesi i\u00e7in gerekli izinlere sahip oldu\u011fundan emin olunmal\u0131d\u0131r.<br \/>\n*   <code>postrotate<\/code> beti\u011fi:<br \/>\n    *   <code>if \/etc\/init.d\/apache2 status > \/dev\/null<\/code>: Bu k\u0131s\u0131m, Apache servisi \u00e7al\u0131\u015f\u0131yorsa beti\u011fin geri kalan\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmay\u0131 garanti eder. E\u011fer Apache \u00e7al\u0131\u015fm\u0131yorsa, <code>rotate<\/code> komutunu \u00e7al\u0131\u015ft\u0131rman\u0131n bir anlam\u0131 yoktur ve hata verebilir.<br \/>\n    *   <code>invoke-rc.d apache2 rotate > \/dev\/null 2>&1<\/code>: Bu komut, Apache servisine log dosyalar\u0131n\u0131 yeniden a\u00e7mas\u0131 gerekti\u011fini bildirir. Apache, bu sinyali ald\u0131\u011f\u0131nda, mevcut log dosyalar\u0131n\u0131 kapat\u0131r ve yeni olu\u015fturulan bo\u015f log dosyalar\u0131na yazmaya ba\u015flar. Bu, loglar\u0131n kesintisiz bir \u015fekilde kaydedilmeye devam etmesini sa\u011flar.<\/p>\n<p><strong>\u00d6zelle\u015ftirme Senaryolar\u0131:<\/strong><br \/>\n*   <strong>Daha s\u0131k d\u00f6nd\u00fcrme:<\/strong> Yo\u011fun trafik alan bir web sitesi i\u00e7in <code>daily<\/code> veya hatta <code>size 100M<\/code> (dosya boyutu 100MB&#8217;a ula\u015ft\u0131\u011f\u0131nda d\u00f6nd\u00fcrme) gibi daha s\u0131k d\u00f6nd\u00fcrme politikalar\u0131 belirleyebilirsiniz.<br \/>\n*   <strong>Daha k\u0131sa saklama s\u00fcresi:<\/strong> E\u011fer disk alan\u0131 k\u0131s\u0131tl\u0131ysa veya yasal gereksinimler daha az log saklaman\u0131za izin veriyorsa, <code>rotate 7<\/code> (bir haftal\u0131k log) gibi daha k\u0131sa bir s\u00fcre belirleyebilirsiniz.<br \/>\n*   <strong>Farkl\u0131 s\u0131k\u0131\u015ft\u0131rma:<\/strong> Varsay\u0131lan <code>gzip<\/code> yerine <code>bzip2<\/code> gibi farkl\u0131 bir s\u0131k\u0131\u015ft\u0131rma algoritmas\u0131 kullanmak isterseniz, <code>compresscmd bzip2<\/code> ve <code>uncompresscmd bunzip2<\/code> direktiflerini kullanabilirsiniz (ancak bu genellikle gerekli de\u011fildir).<\/p>\n<h3>\u00d6rnek Uygulama: \u00d6zel Bir Uygulaman\u0131n Loglar\u0131n\u0131 Y\u00f6netme<\/h3>\n<p>Kendi geli\u015ftirdi\u011finiz veya \u00fc\u00e7\u00fcnc\u00fc taraf bir \u00f6zel uygulaman\u0131n log dosyalar\u0131n\u0131 y\u00f6netmek de Logrotate ile m\u00fcmk\u00fcnd\u00fcr. Diyelim ki uygulaman\u0131z <code>\/var\/log\/myapp\/<\/code> dizini alt\u0131nda <code>myapp.log<\/code> ad\u0131nda bir log dosyas\u0131 olu\u015fturuyor.<\/p>\n<p><strong><code>\/etc\/logrotate.d\/myapp<\/code> dosyas\u0131 olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/logrotate.d\/myapp<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki i\u00e7eri\u011fi ekleyin:<\/p>\n<pre><code class=\"language-\">\/var\/log\/myapp\/myapp.log {\n    daily\n    rotate 7\n    compress\n    delaycompress\n    missingok\n    notifempty\n    create 0640 myappuser myappgroup\n    postrotate\n        # Uygulaman\u0131z\u0131n log dosyas\u0131n\u0131 yeniden a\u00e7mas\u0131n\u0131 sa\u011flayacak komutu buraya ekleyin\n        # \u00d6rne\u011fin, bir sinyal g\u00f6ndermek veya servisi yeniden ba\u015flatmak\n        # kill -USR1 $(cat \/var\/run\/myapp.pid)\n        # service myapp reload\n        # veya e\u011fer uygulaman\u0131z\u0131n \u00f6zel bir komutu varsa:\n        # \/usr\/bin\/myapp --reload-logs\n    endscript\n}<\/code><\/pre>\n<p><strong>A\u00e7\u0131klamalar:<\/strong><\/p>\n<p>*   <code>create 0640 myappuser myappgroup<\/code>: Bu, yeni <code>myapp.log<\/code> dosyas\u0131n\u0131n uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 kullan\u0131c\u0131 ve grup izinleriyle olu\u015fturulmas\u0131n\u0131 sa\u011flar. Bu, uygulaman\u0131z\u0131n yeni log dosyas\u0131na sorunsuz bir \u015fekilde yazabilmesi i\u00e7in \u00e7ok \u00f6nemlidir. <code>myappuser<\/code> ve <code>myappgroup<\/code> de\u011ferlerini uygulaman\u0131z\u0131n ger\u00e7ek kullan\u0131c\u0131 ve grup adlar\u0131yla de\u011fi\u015ftirmeniz gerekir.<br \/>\n*   <code>postrotate<\/code> beti\u011fi: Buradaki en kritik nokta, uygulaman\u0131z\u0131n log dosyas\u0131n\u0131 d\u00f6nd\u00fcr\u00fcld\u00fckten sonra yeniden a\u00e7mas\u0131n\u0131 sa\u011flamakt\u0131r. E\u011fer uygulaman\u0131z <code>myapp.log<\/code> dosyas\u0131na yazmaya devam ederken Logrotate bu dosyay\u0131 <code>myapp.log.1<\/code> olarak yeniden adland\u0131r\u0131r ve yeni bir bo\u015f <code>myapp.log<\/code> olu\u015fturursa, uygulaman\u0131z eski <code>myapp.log.1<\/code> dosyas\u0131na yazmaya devam edecektir. Bu nedenle, uygulaman\u0131za log dosyalar\u0131n\u0131 yeniden a\u00e7mas\u0131 gerekti\u011fini bildirmeniz gerekir. Bu genellikle \u015fu y\u00f6ntemlerden biriyle yap\u0131l\u0131r:<br \/>\n    *   <strong>Sinyal G\u00f6nderme:<\/strong> Bir\u00e7ok uygulama (\u00f6zellikle sunucu uygulamalar\u0131), belirli bir sinyal (\u00f6rne\u011fin, <code>USR1<\/code> veya <code>HUP<\/code>) ald\u0131\u011f\u0131nda log dosyalar\u0131n\u0131 yeniden a\u00e7acak \u015fekilde tasarlanm\u0131\u015ft\u0131r. Uygulaman\u0131z\u0131n PID&#8217;sini (Process ID) bulup bu sinyali g\u00f6nderebilirsiniz: <code>kill -USR1 $(cat \/var\/run\/myapp.pid)<\/code>. Uygulaman\u0131z\u0131n PID&#8217;sini bir dosyaya yazmas\u0131 gerekir (<code>\/var\/run\/myapp.pid<\/code>).<br \/>\n    *   <strong>Servisi Yeniden Y\u00fckleme\/Ba\u015flatma:<\/strong> E\u011fer uygulaman\u0131z bir sistem servisi olarak \u00e7al\u0131\u015f\u0131yorsa, servisi yeniden y\u00fcklemek (<code>service myapp reload<\/code>) veya yeniden ba\u015flatmak (<code>service myapp restart<\/code>) da log dosyalar\u0131n\u0131 yeniden a\u00e7mas\u0131n\u0131 sa\u011flayabilir. Ancak yeniden ba\u015flatma, uygulaman\u0131z\u0131n k\u0131sa bir s\u00fcre i\u00e7in kullan\u0131lamamas\u0131na neden olabilir, bu nedenle <code>reload<\/code> tercih edilir.<br \/>\n    *   <strong>\u00d6zel Komut:<\/strong> Baz\u0131 uygulamalar\u0131n log dosyalar\u0131n\u0131 yeniden a\u00e7mak i\u00e7in kendi \u00f6zel komutlar\u0131 olabilir. Uygulaman\u0131z\u0131n belgelerini kontrol edin.<\/p>\n<p>Bu <code>postrotate<\/code> beti\u011fi, \u00f6zel uygulaman\u0131z\u0131n log y\u00f6netiminin anahtar\u0131d\u0131r. Do\u011fru komutu bulmak i\u00e7in uygulaman\u0131z\u0131n belgelerine veya kaynak koduna bakman\u0131z gerekebilir.<\/p>\n<h3>Geli\u015fmi\u015f Logrotate \u00d6zellikleri ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>Logrotate, basit log d\u00f6nd\u00fcrmenin \u00f6tesinde bir\u00e7ok geli\u015fmi\u015f \u00f6zellik sunar.<\/p>\n<p>*   <strong><code>su user group<\/code> Direktifi:<\/strong> Bu direktif, Logrotate&#8217;\u0131n belirli bir log dosyas\u0131 blo\u011fu i\u00e7in <code>prerotate<\/code> ve <code>postrotate<\/code> betiklerini belirtilen kullan\u0131c\u0131 ve grup haklar\u0131 alt\u0131nda \u00e7al\u0131\u015ft\u0131rmas\u0131n\u0131 sa\u011flar. Bu, <code>root<\/code> ayr\u0131cal\u0131klar\u0131 gerektirmeyen veya belirli bir kullan\u0131c\u0131ya ait dosyalarla etkile\u015fime giren betikler i\u00e7in g\u00fcvenlik a\u00e7\u0131s\u0131ndan \u00f6nemlidir. \u00d6rne\u011fin, bir kullan\u0131c\u0131n\u0131n kendi ev dizinindeki loglar\u0131n\u0131 y\u00f6netiyorsan\u0131z:<\/p>\n<pre><code class=\"language-\">\/home\/kullanici\/logs\/app.log {\n        daily\n        rotate 7\n        su kullanici kullanicigrubu\n        postrotate\n            \/home\/kullanici\/bin\/reload_app_logs.sh\n        endscript\n    }<\/code><\/pre>\n<p>*   <strong><code>copytruncate<\/code> vs. <code>create<\/code> + <code>postrotate<\/code>:<\/strong><br \/>\n    *   <code>copytruncate<\/code>: Mevcut log dosyas\u0131n\u0131n bir kopyas\u0131n\u0131 yapar, ard\u0131ndan orijinal dosyay\u0131 s\u0131f\u0131rlar. Avantaj\u0131, uygulaman\u0131n log dosyas\u0131n\u0131 kapat\u0131p a\u00e7mas\u0131na gerek kalmamas\u0131d\u0131r. Dezavantaj\u0131, kopyalama ve s\u0131f\u0131rlama aras\u0131nda ge\u00e7en \u00e7ok k\u0131sa s\u00fcrede yaz\u0131lan log verilerinin kaybolma riskidir. Y\u00fcksek hacimli loglama yapan uygulamalar i\u00e7in \u00f6nerilmez.<br \/>\n    *   <code>create<\/code> + <code>postrotate<\/code>: Log dosyas\u0131n\u0131 yeniden adland\u0131r\u0131r (<code>.log.1<\/code>), yeni bo\u015f bir dosya olu\u015fturur (<code>.log<\/code>), ve ard\u0131ndan uygulaman\u0131n log dosyas\u0131n\u0131 yeniden a\u00e7mas\u0131n\u0131 tetikler. Bu y\u00f6ntem, log kayb\u0131 riskini minimize eder ve genellikle daha g\u00fcvenli ve tercih edilen y\u00f6ntemdir. Ancak, uygulaman\u0131n <code>postrotate<\/code> beti\u011fi arac\u0131l\u0131\u011f\u0131yla log dosyas\u0131n\u0131 yeniden a\u00e7ma yetene\u011fine sahip olmas\u0131 gerekir.<br \/>\n*   <strong><code>dateext<\/code> ile Tarihli Dosya Adlar\u0131:<\/strong> <code>dateext<\/code> direktifi, d\u00f6nd\u00fcr\u00fclen log dosyalar\u0131na s\u0131ral\u0131 numaralar (<code>.1<\/code>, <code>.2<\/code>) yerine tarih uzant\u0131lar\u0131 ekler (<code>-YYYYMMDD<\/code>). Bu, log dosyalar\u0131n\u0131 tarihe g\u00f6re takip etmeyi \u00e7ok daha kolay hale getirir ve uzun s\u00fcre saklanan loglar i\u00e7in daha anlaml\u0131 bir adland\u0131rma sa\u011flar.<\/p>\n<pre><code class=\"language-\">\/var\/log\/myapp\/myapp.log {\n        daily\n        rotate 30\n        dateext  # myapp.log-20230101.gz \u015feklinde adland\u0131r\u0131l\u0131r\n        compress\n        # ... di\u011fer direktifler ...\n    }<\/code><\/pre>\n<p>*   <strong>Hata Ay\u0131klama ve Sorun Giderme \u0130pu\u00e7lar\u0131:<\/strong><br \/>\n    *   <strong>Logrotate Durum Dosyas\u0131 (<code>\/var\/lib\/logrotate\/status<\/code>):<\/strong> Bu dosya, Logrotate&#8217;\u0131n her bir log dosyas\u0131 i\u00e7in en son ne zaman d\u00f6nd\u00fcrme i\u015flemi yapt\u0131\u011f\u0131n\u0131 kaydeder. E\u011fer bir log dosyas\u0131n\u0131n neden d\u00f6nd\u00fcr\u00fclmedi\u011fini merak ediyorsan\u0131z, bu dosyay\u0131 kontrol edin.<br \/>\n    *   <strong>Cron Loglar\u0131:<\/strong> Logrotate genellikle <code>\/etc\/cron.daily\/logrotate<\/code> beti\u011fi arac\u0131l\u0131\u011f\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in, cron i\u015flerinin \u00e7\u0131kt\u0131s\u0131n\u0131 kontrol etmek faydal\u0131 olabilir. Ubuntu 12.10&#8217;da, bu loglar genellikle <code>\/var\/log\/syslog<\/code> veya <code>\/var\/log\/auth.log<\/code> gibi sistem loglar\u0131nda bulunur. <code>grep logrotate \/var\/log\/syslog<\/code> komutuyla ilgili girdileri arayabilirsiniz.<br \/>\n    *   <strong>Logrotate&#8217;\u0131n Kendi Loglar\u0131:<\/strong> Logrotate&#8217;\u0131n kendisi varsay\u0131lan olarak ayr\u0131 bir log dosyas\u0131 olu\u015fturmaz. Ancak, <code>--verbose<\/code> (<code>-v<\/code>) ve <code>--debug<\/code> (<code>-d<\/code>) bayraklar\u0131n\u0131 kullanarak \u00e7\u0131kt\u0131s\u0131n\u0131 inceleyebilirsiniz.<br \/>\n    *   <strong>\u0130zin Sorunlar\u0131:<\/strong> Log dosyalar\u0131n\u0131n veya Logrotate yap\u0131land\u0131rma dosyalar\u0131n\u0131n yanl\u0131\u015f izinlere sahip olmas\u0131, Logrotate&#8217;\u0131n \u00e7al\u0131\u015fmas\u0131n\u0131 engelleyebilir. Dosya ve dizin izinlerini kontrol edin.<br \/>\n*   <strong>Disk Alan\u0131 Takibi:<\/strong> Logrotate, disk alan\u0131n\u0131 y\u00f6netmek i\u00e7in harika bir ara\u00e7 olsa da, disk kullan\u0131m\u0131n\u0131 d\u00fczenli olarak izlemek (\u00f6rne\u011fin, <code>df -h<\/code> komutuyla) her zaman iyi bir uygulamad\u0131r. Logrotate&#8217;\u0131n yap\u0131land\u0131rmas\u0131n\u0131n beklendi\u011fi gibi \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve disk alan\u0131n\u0131n dolmad\u0131\u011f\u0131ndan emin olun.<br \/>\n*   <strong>Logrotate&#8217;\u0131n Performans \u00dczerindeki Etkisi:<\/strong> \u00d6zellikle \u00e7ok b\u00fcy\u00fck log dosyalar\u0131 veya \u00e7ok say\u0131da log dosyas\u0131 i\u00e7in Logrotate&#8217;\u0131n s\u0131k\u0131\u015ft\u0131rma ve d\u00f6nd\u00fcrme i\u015flemleri CPU ve disk G\/\u00c7 kaynaklar\u0131n\u0131 t\u00fcketebilir. Bu durum, yo\u011fun saatlerde sistem performans\u0131n\u0131 etkileyebilir. Bu t\u00fcr durumlarda:<br \/>\n    *   <code>delaycompress<\/code> kullanmak, s\u0131k\u0131\u015ft\u0131rma i\u015flemini daha az yo\u011fun bir zamana erteleyebilir.<br \/>\n    *   D\u00f6nd\u00fcrme s\u0131kl\u0131\u011f\u0131n\u0131 azaltmak (\u00f6rne\u011fin, g\u00fcnl\u00fck yerine haftal\u0131k).<br \/>\n    *   Logrotate&#8217;\u0131 daha az yo\u011fun saatlerde \u00e7al\u0131\u015facak \u015fekilde ayarlamak (\u00f6rne\u011fin, <code>\/etc\/cron.d\/logrotate<\/code> i\u00e7ine \u00f6zel bir cron tan\u0131m\u0131 ekleyerek).<\/p>\n<h3>Logrotate G\u00fcvenli\u011fi<\/h3>\n<p>Logrotate yap\u0131land\u0131rmalar\u0131, sistemin kritik log dosyalar\u0131n\u0131 y\u00f6netti\u011fi i\u00e7in g\u00fcvenlik a\u00e7\u0131s\u0131ndan \u00f6nemlidir.<\/p>\n<p>*   <strong>Yap\u0131land\u0131rma Dosyalar\u0131n\u0131n \u0130zinleri:<\/strong> <code>\/etc\/logrotate.conf<\/code> ve <code>\/etc\/logrotate.d\/<\/code> dizinindeki t\u00fcm yap\u0131land\u0131rma dosyalar\u0131 yaln\u0131zca <code>root<\/code> kullan\u0131c\u0131s\u0131 taraf\u0131ndan yaz\u0131labilir olmal\u0131d\u0131r. Genellikle <code>root:root<\/code> sahipli\u011fi ve <code>0644<\/code> veya <code>0600<\/code> izinleri \u00f6nerilir. Yanl\u0131\u015f izinler, k\u00f6t\u00fc niyetli kullan\u0131c\u0131lar\u0131n log y\u00f6netimi politikalar\u0131n\u0131 de\u011fi\u015ftirerek loglar\u0131 manip\u00fcle etmesine veya hassas bilgileri gizlemesine olanak tan\u0131yabilir.<br \/>\n*   <strong><code>postrotate<\/code> Script&#8217;lerinde Komut G\u00fcvenli\u011fi:<\/strong> <code>postrotate<\/code>, <code>prerotate<\/code> gibi betik bloklar\u0131nda \u00e7al\u0131\u015ft\u0131r\u0131lan komutlar dikkatlice se\u00e7ilmelidir. Bu betikler genellikle <code>root<\/code> ayr\u0131cal\u0131klar\u0131yla \u00e7al\u0131\u015f\u0131r. G\u00fcvenilmeyen veya iyi test edilmemi\u015f komutlar\u0131 \u00e7al\u0131\u015ft\u0131rmaktan ka\u00e7\u0131n\u0131n. Komutlar\u0131n tam yollar\u0131n\u0131 belirtmek (<code>\/usr\/bin\/kill<\/code> yerine <code>kill<\/code>) g\u00fcvenlik risklerini azaltabilir.<br \/>\n*   <strong>Log Dosyalar\u0131n\u0131n Eri\u015fim \u0130zinleri:<\/strong> Logrotate taraf\u0131ndan olu\u015fturulan veya d\u00f6nd\u00fcr\u00fclen log dosyalar\u0131n\u0131n do\u011fru izinlere sahip oldu\u011fundan emin olun (<code>create<\/code> direktifi). Hassas bilgiler i\u00e7eren log dosyalar\u0131, yaln\u0131zca yetkili kullan\u0131c\u0131lar veya gruplar taraf\u0131ndan okunabilir olmal\u0131d\u0131r.<\/p>\n<h3>Ubuntu 12.10&#8217;dan Sonraki S\u00fcr\u00fcmlerdeki Farklar (K\u0131sa Bir Not)<\/h3>\n<p>Bu makale \u00f6zellikle Ubuntu 12.10&#8217;a odaklanm\u0131\u015f olsa da, Logrotate&#8217;\u0131n temel prensipleri ve direktifleri Linux da\u011f\u0131t\u0131mlar\u0131 aras\u0131nda genellikle ayn\u0131 kal\u0131r. Ancak, 12.10 s\u00fcr\u00fcm\u00fcnden sonraki Ubuntu s\u00fcr\u00fcmlerinde (ve genel olarak Linux ekosisteminde) baz\u0131 \u00f6nemli de\u011fi\u015fiklikler olmu\u015ftur:<\/p>\n<p>*   <strong><code>systemd<\/code>&#8216;nin Ortaya \u00c7\u0131k\u0131\u015f\u0131:<\/strong> Ubuntu 15.04&#8217;ten itibaren <code>upstart<\/code> yerine <code>systemd<\/code> varsay\u0131lan init sistemi haline geldi. Bu, <code>postrotate<\/code> betiklerinde servisleri yeniden y\u00fckleme komutlar\u0131n\u0131 etkiledi. Ubuntu 12.10&#8217;da <code>invoke-rc.d service_name rotate<\/code> veya <code>service service_name reload<\/code> kullan\u0131l\u0131rken, <code>systemd<\/code> tabanl\u0131 sistemlerde <code>systemctl reload service_name<\/code> komutu tercih edilir.<br \/>\n*   <strong>Varsay\u0131lan Yap\u0131land\u0131rmalar:<\/strong> Baz\u0131 uygulamalar\u0131n varsay\u0131lan Logrotate yap\u0131land\u0131rmalar\u0131 zamanla de\u011fi\u015febilir veya yeni direktifler eklenebilir.<br \/>\n*   <strong>Logrotate S\u00fcr\u00fcmleri:<\/strong> Logrotate&#8217;\u0131n kendisi de zamanla g\u00fcncellemeler alarak yeni \u00f6zellikler veya hata d\u00fczeltmeleri i\u00e7erebilir.<\/p>\n<p>Bu farkl\u0131l\u0131klar, bu makalede a\u00e7\u0131klanan temel Logrotate direktiflerinin ve kavramlar\u0131n\u0131n hala ge\u00e7erli oldu\u011fu ger\u00e7e\u011fini de\u011fi\u015ftirmez. Ubuntu 12.10&#8217;da \u00f6\u011frendi\u011finiz bilgiler, daha yeni sistemlerde Logrotate&#8217;\u0131 anlaman\u0131z ve yap\u0131land\u0131rman\u0131z i\u00e7in sa\u011flam bir temel olu\u015fturacakt\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Logrotate, Linux tabanl\u0131 sistemlerde log dosyas\u0131 y\u00f6netimini otomatikle\u015ftirmenin ve kolayla\u015ft\u0131rman\u0131n vazge\u00e7ilmez bir arac\u0131d\u0131r. Ubuntu 12.10 gibi sunucu i\u015fletim sistemlerinde, sistemin sa\u011fl\u0131\u011f\u0131n\u0131, performans\u0131n\u0131 ve g\u00fcvenli\u011fini s\u00fcrd\u00fcrmek i\u00e7in log dosyalar\u0131n\u0131n etkin bir \u015fekilde y\u00f6netilmesi kritik \u00f6neme sahiptir. Logrotate&#8217;\u0131n sundu\u011fu esneklik sayesinde, her uygulaman\u0131n \u00f6zel loglama gereksinimlerine g\u00f6re \u00f6zelle\u015ftirilmi\u015f politikalar olu\u015fturmak m\u00fcmk\u00fcnd\u00fcr.<\/p>\n<p>Bu makalede, Logrotate&#8217;\u0131n temel \u00e7al\u0131\u015fma prensiplerinden, ana yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/logrotate.conf<\/code>&#8216;un incelenmesine, uygulama \u00f6zel yap\u0131land\u0131rmalar\u0131 <code>\/etc\/logrotate.d\/<\/code> i\u00e7indeki direktiflerin ayr\u0131nt\u0131l\u0131 a\u00e7\u0131klamas\u0131na, test etme y\u00f6ntemlerine ve Apache ile \u00f6zel uygulamalar i\u00e7in \u00f6rnek uygulamalara kadar geni\u015f bir yelpazeyi ele ald\u0131k. Ayr\u0131ca, <code>copytruncate<\/code> vs. <code>create<\/code> + <code>postrotate<\/code> fark\u0131, <code>dateext<\/code> kullan\u0131m\u0131 gibi geli\u015fmi\u015f \u00f6zellikler ve g\u00fcvenlik ipu\u00e7lar\u0131 \u00fczerinde durduk.<\/p>\n<p>Logrotate&#8217;\u0131 do\u011fru bir \u015fekilde yap\u0131land\u0131rmak ve d\u00fczenli olarak izlemek, disk alan\u0131 sorunlar\u0131n\u0131 \u00f6nler, sistem performans\u0131n\u0131 art\u0131r\u0131r, sorun giderme s\u00fcre\u00e7lerini h\u0131zland\u0131r\u0131r ve yasal uyumluluk gereksinimlerini kar\u015f\u0131lamaya yard\u0131mc\u0131 olur. Her sistem y\u00f6neticisinin ara\u00e7 kutusunda bulunmas\u0131 gereken bu g\u00fc\u00e7l\u00fc arac\u0131 anlamak ve etkin bir \u015fekilde kullanmak, daha istikrarl\u0131 ve y\u00f6netilebilir bir sunucu ortam\u0131 sa\u011flaman\u0131n anahtar\u0131d\u0131r. Unutmay\u0131n, iyi y\u00f6netilen loglar, bir sistemin sessizce \u00e7al\u0131\u015fan, ancak kritik derecede \u00f6nemli haf\u0131zas\u0131d\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme\nGiri\u015f\nBilgisayar sistemleri ve \u00fczerinde \u00e7al\u0131\u015fan uygulamalar, faaliyetlerini ve k","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-36961","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme\" \/>\n<meta property=\"og:description\" content=\"Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme Giri\u015f Bilgisayar sistemleri ve \u00fczerinde \u00e7al\u0131\u015fan uygulamalar, faaliyetlerini ve k\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-25T11:41:05+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"28 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme\",\"datePublished\":\"2025-12-25T11:41:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/\"},\"wordCount\":4892,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/\",\"name\":\"Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-25T11:41:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/","og_locale":"tr_TR","og_type":"article","og_title":"Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme","og_description":"Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme Giri\u015f Bilgisayar sistemleri ve \u00fczerinde \u00e7al\u0131\u015fan uygulamalar, faaliyetlerini ve k","og_url":"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-25T11:41:05+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"28 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme","datePublished":"2025-12-25T11:41:05+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/"},"wordCount":4892,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/","url":"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/","name":"Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-25T11:41:05+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/logrotate-ile-ubuntu-12-10-uzerinde-log-dosyalarini-yonetme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Logrotate ile Ubuntu 12.10 \u00dczerinde Log Dosyalar\u0131n\u0131 Y\u00f6netme"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36961","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=36961"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36961\/revisions"}],"predecessor-version":[{"id":36962,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36961\/revisions\/36962"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}