Назад | Перейти на главную страницу

Bash отредактируйте файл и сохраните последние 500 строк

Я хочу создать задание cron, которое открывает каталог, просматривает все журналы, которые я создал, и удаляет все строки, но, например, сохраняет последние 500.

Я думал о чем-то вроде

хвост -n 500 имя_файла> имя_файла

Это сработает?

Я также не уверен, как пройти через каталог в bash

Заранее спасибо.

Вы слышали о logrotate? Считаю, что логи стирать нехорошо.

for file in *; do tail -n 500 filename > filename2 && mv filename2 filename ; done

Запись в файл, который вы читаете, - не лучшая идея. Мое решение также не очень хорошее, так как вы можете потерять журнал между командами tail и mv.
Но все таки

for file in *;

это способ перебрать файлы каталога.

Но почему бы вам не использовать logrotate ??