# Разбивает лог-файл на отдельные логи по ip-адресам Все необходимые описания есть в комментариях в скрипте. Предполагается, что скрипт будет запускаться по расписанию (cron), при этом процесс который создает логи tacacs (обычно tac_plus) будет создавать лог заново, т.к. скрипт удаляет исходный лог. ```bash #!/bin/bash # log_file_name -- имя лог-файла который надо разобрать (лучше указать полный путь). log_file_name="tac_1.acc" # out_directory -- каталог, в который надо складывать расщепленные логи # * -- каталог должен существовать # * -- если пустая строка "расщепление" будет происходить в текущем каталоге # * -- несли не пустая строка, то значение переменной должно заканчиваться '/'. out_directory="" # ext2split -- расширение для сплит-логов ext2split=".split_log" # читаем файл лога построчно cat "$log_file_name" | while IFS= read -r line; do # обрабатываем строку (она в $line) # находим ipv4 (первое ipv4 в строке) ipv4=$(echo "$line" | awk '{for (i=1; i<=NF; i++) if ($i ~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/) {print $i; exit}}') # добавление строку в соответствующий сплит-лог echo "$line" >> "$out_directory$ipv4$ext2split" done # удаляем исходный лог. т.к. его уже нарезали на плит-логи. rm -rf "$log_file_name" ```