Web Sitesinde log tutmak
13
●7.066
- 08-03-2013, 15:16:09Dediğim gibi ram ve dosya boyutu konusunda verileri belli aralıklarla başka yere taşıma veya mail ile gönderme işlemini yapabilirsiniz. Hatta bunu saat aralığıyla değil de dosya boyutuna bakarak bile yaptırabilirsiniz.oscoder adlı üyeden alıntı: mesajı görüntüle
Bir php sayfası açıp logların tutulduğu dosyanın boyutuna bakarsınız atıyorum 5 MB veya üstüyse diğer sunucuya aktaracak kodu çalıştırırsınız değilse boş geçer (if else).
Bu php sayfasını ise cronjob ile belirli aralıklarla çalıştırırsınız.
Eğer dosya 5 mb veya daha büyük olduysa cron job ile çalışan sayfanız dosyanın içeriğini diğer sunucuya atacak ve dosyanızdaki bilgileri silecek ve dosyanız belirli saat aralıklarıyla 5 mb ı geçmişse başka bir sunucuya parça parça aktarılacak böylece sizin sunucunuzda dosya birikip aşırı derecede sunucunuzu yormayacak bilmem anlatabildim mi
kolay gelsin.
- 08-03-2013, 17:30:24Demek istediğinizi ilk mesajınızda da anlamıştım, fakat yoğun kullanılacak bir sistemde dosya işlemleri çok kullanışlı olmayacağı kanısına kesinlikle varmış durumdayım. Bir işlem için dosya açıldığında diğer işlem dosyanın kapanmasını beklemek zorunda. Farzedinki aynı anda 2 kullanıcı aynı anda açtı dosyayı, önce kayıt yapıp dosyayı kapatanın verisi ikinci kişi kaydettiğinde kaybolacak. Bu gibi durumlardan xml,json yada text dosyalardan vaz geçmişdurumdayım. Şuan NoSQL veritabanlarına yönelmiş durumdayım. Eğerki aradığımı bunda da bulamazsam bir webservis yazarak direk webe kapalı bir sunucuda web servis sayesinde tutacağım logları. Ama hala araştırmalarım devam etmekte.
İlginize teşekkür ediyorum.
Cümleten iyi çalışmalar. - 08-03-2013, 20:22:53O halde db'yi boşaltmak için yapılabilir bu sistem,oscoder adlı üyeden alıntı: mesajı görüntüle
Sistem bu sefer yine belli saat aralıklarıyla o dosyaya girer, loglar bir dosyada değil veritabanında tutulur.
PHP çalışır veritabanında ki sorguları sorgular, dosyaya yazar ve db dekleri siler, daha sonra kaydettiiği dosyayı karşı sunucuya gönderir.
Bu işlem tekrarlanarak db nin boş yere dolması ve yine sistemi kasması önlenmiş olur.
Yada hepsi bir yana, sadece bu iş için optimize edilmiş bir veritabanı sunucusu alıp, verileri uzak veritabanı bağlantısıyla ona kaydedebilirsiniz. - 08-03-2013, 21:35:35wdr.leo adlı üyeden alıntı: mesajı görüntüle
İlk olarak düşünce ve ilginize teşekkür ediyorum. Şuan daha önceleri fantazi amaçlı baktığım, şimdi ise tamami ile bu sistem için uygun gördüğüm mongodb NoSQL veritabanını kullanacağım. Sanırım bu veritabanı beni ek sunucu masrafından, hem sql injectiondan (çünkü no sql) hemde kasılma probleminden kurtaracak gibi görünüyor. Bu konu hakkında yarın denemeler yapacağım ve ilerleyen zamanda da sonuca varıp geliştirdiğim özelliği burada paylaşacağım.
Uzak sunucudaki veritabanı yorumunuza ek olarak ben yine sunucunun veritabanına direk ulaşmanın lokaldeki durum ile yakın sorunlara neden olabileceği kanısındayım. Bunun için aracı bir katman düşünmekteyim. Eğer ki mongodb de çözümü bulamazsam be ek katmanı tasarlayacağım. Atık düşüncelerim bu şekilde yoğunlaştı. Birde sürekli bir db yi boşaltıp verileri parçalamak da güzel bir olay değil kanısındayım. Çünki kullanıcılar geçmişe dönük bir şey bakmak istese sonuca ulaşmak için ya yedek yükleyecek kadar programlama bilecekler yada bana ulaşacaklarki buda benim işime gelmez. Yani verinin geri dönüşümünüde düşünmek durumundayız.
Teşekkürler, iyi çalışmalar.
.