Добавление двух столбцов в CSV и вывод в новый CSV-файл

Большинство современных дистрибутивов Linux включают утилиту [11508] logrotate[11509], которую операционная система затем использует для поддержки каталога [11510]/var/log[11511]. Вы также можете использовать его. Он запускается через [11512]cron[11513], так что если вы хотите, чтобы лог вращался с определенной частотой, вам нужно настроить cronjob, который будет работать так часто.

Примеры

Это позволит вращать 2 файла [11514]access.log[11515] и [11516]error.log[11517], сохраняя максимум 5 (текущий + 4 вращения). После перемещения текущего лог-файла, [11518]killall -HUP httpd[11519] посылает сигнал "Повесить трубку" работающему демону, чтобы инициировать создание нового лог-файла для начала протоколирования с этого момента в оригинальные именованные файлы [11520]access.log[11521] и [11522]error.log[11523]. Он также будет вращать лог-файлы, если их размер превышает 100k.

Он будет вращать лог-файлы под директорией [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 примерами

2
12.10.2015, 14:27
1 ответ

Вы можете попробовать следующее awk:

awk 'BEGIN { FS = OFS = ","; } NR == 1 { print $1, $2; next; } { for (x = 3; x <= NF; x++) $2 += $x;  print $1, $2 } ' file
1
27.01.2020, 22:20

Теги

Похожие вопросы