Вращение журналов, сгенерированных процессом, который регистрируется к stdin

проблема - это, находит DST=192.168.1.1, но это должно только найти 192.168.1.1

Это во многом зависит от инструмента, который Вы используете. Например, с sed это могло бы дать Вам, хотят Вас, хотят.

echo "... SRC=10.1.1.1 DST=192.168.1.1 LEN=40 ..."  | \
sed -e 's/.*DST=\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/g'

192.168.1.1

См. эту статью о группировке regex.

При попытке сделать выделение, это похоже на то, что можно хотеть/нуждаться. Из конфигурации.

# cs_re_s::
#             Like cs_re but only the substrings are used(!). E.g.:
#             ^....(...)...(...)
#             In the example above only what matches between '(' and ')' is
#             assigned a color. See the 'acctail' colorscheme for an example.

Существует даже пример, который в том файле близко к тому, чему я верю, Вы хотите. Пример cs_re_s:cyan:kernel: .*(SRC=[^ ]*) *(DST=[^ ]*) То, что Вы хотите, который я думаю, должно выделиться, что-либо после DST может быть cs_re_s:red:kernel: .*DST=([^ ]*).

7
задан 3 November 2012 в 20:58
1 ответ

Multilog от DJB daemontools может делать (почти) именно то, что вы просите. Единственный недостаток, о котором я знаю, это то, что не во многих дистрибутивах есть пакет для daemontools .

Если вы не управляете своим приложением с помощью svc (часть daemontools), вы нужно будет найти способ передать вывод по конвейеру в команду типа

multilog t s1048576 n100 ./my_log_directory

. Это переводится как:

  • t : вставить временную метку tai64n (которую можно преобразовать во время чтения с помощью tai64nlocal )
  • s1048576 : повернуть файл журнала, когда он вырастет до 1 МБ
  • n100 : сохранить не более 100 повернутых файлов
  • . / my_log_directory : все, что начинается с . или / - записать журнал в этот каталог

Записываемый журнал будет иметь имя файла текущий , и когда multilog вращает журнал, он будет переименован в @ .s , где имя файла показывает время, когда файл был повернут. Расширение может быть .s , если файл был благополучно очищен, или .u , если он мог быть усечен.

Для получения дополнительной информации просто проверьте ссылки.

s , где имя файла показывает время, когда файл был повернут. Расширение может быть .s , если файл был безопасно очищен, или .u , если он мог быть усечен.

Для получения дополнительной информации просто проверьте ссылки.

s , где имя файла показывает время, когда файл был повернут. Расширение может быть .s , если файл был благополучно очищен, или .u , если он мог быть усечен.

Для получения дополнительной информации просто проверьте ссылки.

6
ответ дан 2 December 2019 в 23:40

Теги

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