Большинство современных дистрибутивов Linux включают утилиту [11508] logrotate[11509], которую операционная система затем использует для поддержки каталога [11510]/var/log[11511]. Вы также можете использовать его. Он запускается через [11512]cron[11513], так что если вы хотите, чтобы лог вращался с определенной частотой, вам нужно настроить cronjob, который будет работать так часто.
Примеры
Он будет вращать лог-файлы под директорией [11524]/var/log/news/*[11525] montly, сохраняя 2 (текущий + 1). Этот набор правил сохранит лог-файлы в их исходном состоянии, а не будет сжиматься ([11526].gz[11527]), что является поведением по умолчанию.
Должен ли я посылать kill -HUP?
Нет, это не обязательно, только если ваше приложение этого требует. Это то, что запускает ваше приложение, чтобы остановить запись в текущий лог-файл (после того, как он будет переименован с скажем [11528]access.log[11529] на [11530]access.log.1[11531]) и снова начать запись в исходное имя, [11532]access.log[11533].
References
HowTo: Ultimate Logrotate Command Tutorial с 10 примерами
Вы можете попробовать следующее awk
:
awk 'BEGIN { FS = OFS = ","; } NR == 1 { print $1, $2; next; } { for (x = 3; x <= NF; x++) $2 += $x; print $1, $2 } ' file