I am developing a script to read and search log files for a big system at work. It currently works like this:
- Kullanıcı arama parametrelerini tanımlar
- PHP bir geçici dosyaya log dosyası (ve çizgileri ters) kopyalamak için ("tac logfile.log> tmpfile.log") shell_exec kullanır
- PHP fopen () 'nin geçici dosya
- PHP dosyasının her satırı okur ve arama parametrelerini uygular
- PHP # 2 yapılmış geçici dosyayı siler
Günlük dosyaları her birkaç saniyede yazılır gibi bu yöntemle karar, ve ben geriye günlük dosyasını okumak gerekir.
Benim sorunum bu günlük dosyası> 300MB olduğunda adım # 2 gerçekten çok uzun zaman alır, ve her günün günlük dosyası kolayca 500MB, bu nedenle bu kadar veri arıyor gerçekten zaman alıcı olmasıdır.
Ben birkaç soru var:
- Ben sadece aktif log dosyası üzerinde () fopen çalıştırabilir miyim?
- Diğer komut buna yazarken ben sadece bunu okudum yoksa bu günlük dosyasının bozulmasına neden olabilir?
- Ben aynı anda okuyorum eğer günlük dosyasına yazarak komut yavaşlatacak mı?
- Her dosyanın satır geriye ziyade ileriye okumak için PHP söyleyebilir misiniz?
Ben mantıklı umut ...