Я надеюсь создавать задание крона, которое открывает каталог циклы через все журналы, которые я создал, и удаляет все строки, но сохраните последние 500, например.
Я думал о чем-то вроде
tail -n 500 filename > filename
Это работало бы?
Я также не уверенный, как циклично выполниться через каталог в ударе.
Подумайте об использовании logrotate .
Он не будет делать то, что вы хотите (удалить все строки, кроме последних 500), но он может позаботиться о файлах журнала, которые больше определенного размера (обычно путем сжатия старых и их удаления в какой-то момент). Должен быть широко доступен.
DIR=/path/to/my/dir # log directory
TMP=/tmp/tmp.log # temporary file
for f in `find ${DIR} -type f -depth 1 -name \*.log` ; do
tail -n 500 $f > /tmp/tmp.log
mv /tmp/tmp.log $f
done
В bash вы перебираете файлы в каталоге, например например:
cd target/directory
for filename in *log; do
echo "Cutting file $filename"
tail -n 500 $filename > $filename.cut
mv $filename.cut $filename
done