У меня есть файл, который я использую для регистрации IP-адресов для клиента. Они хотят сохранить последние 500 строк файла. Это в системе Linux с PHP4 (о нет!).
Я собирался добавить в файл одну строку за раз с новыми IP-адресами. У нас нет доступа к cron, поэтому мне, вероятно, нужно, чтобы эта функция также выполняла очистку с ограничением строки.
Я думал о том, чтобы использовать как exec('tail [some params]')
или, возможно, прочитать файл в PHP, разбить его на новые строки в массив, получить последние 1000 элементов и записать его обратно. Кажется, что она требует большого объема памяти.
Какой лучший способ сделать это?
Обновление:
В комментариях к @ meagar ниже, если бы я хотел использовать функциональность zip, как бы я это делал в своем PHP-скрипте? (нет доступа к cron)
if(rand(0,10) == 10){
shell_exec("find . logfile.txt [where size > 1mb] -exec zip {} \;")
}
Будет ли zip перечислять файлы автоматически, если существует существующий файл, или мне нужно сделать это вручную?