Я написал быстрый bash-скрипт для отслеживания нескольких файлов журнала и отправки их содержимого в чат Mattermost.Это скрипт:
#!/bin/bash
# HOOKS
hook1=...#Mattermost hook
hook2=...#Mattermost hook
hook3=...#Mattermost hook
date=$1
year=$2
unbuffer tail -f -n0 /var/log/$year/hook1_*$date.log \
/var/log/$year/hook2_*$date.log \
/var/log/$year/hook3_*$date.log | grep "ERROR" | while read -r msg
do
if [[ $msg = *"hook1"* ]]
then
hook=$hook1
elif [[ $msg = *"hook2"* ]]
then
hook=$hook2
else
hook=$hook3
fi
msg=$(echo "$msg" | sed -r "s/\"/\\\\\"/g")
curl -i -X POST --data-urlencode "payload={\"text\": \"$msg\"}" $hook
done
Часть sed экранирует кавычки, поэтому я могу заменить сообщение на curl.
Однако во время выполнения возникают некоторые проблемы:
- Похоже, что в htop после 2 раз запускается 2 процесса.
- Иногда сообщения не отправляются в Mattermost по мере их появления, но вместо этого они появляются партиями.
- Иногда появляются сообщениявырезать и часть содержимого теряется.