クライアントの IP アドレスをログに記録するために使用しているファイルがあります。彼らは、ファイルの最後の 500 行を保持したいと考えています。これは、PHP4 を使用した Linux システム上にあります (いや!)。
一度に 1 行ずつ新しい IP アドレスをファイルに追加するつもりでした。cron にアクセスできないので、おそらくこの関数で行制限のクリーンアップも行う必要があります。
likeを使用するかexec('tail [some params]')
、PHPでファイルを読み取り、改行で配列に展開し、最後の1000要素を取得して、書き戻すことを考えていました。ただし、メモリ集約型のようです。
これを行うためのより良い方法は何ですか?
アップデート:
以下の @meagar のコメントによると、zip 機能を使用したい場合、PHP スクリプト内でそれを行うにはどうすればよいですか? (cron へのアクセスなし)
if(ランド(0,10) == 10){ shell_exec("find .logfile.txt [ここでサイズ > 1MB] -exec zip {} \;") }
既存のファイルがある場合、zip はファイルを自動的に列挙しますか、それとも手動で行う必要がありますか?