Я отслеживаю файл системного журнала, который получает события системного журнала от коммутаторов unifi. На данный момент я отслеживаю только один порт в целях тестирования. Можно ли расширить эту команду для мониторинга нескольких портов?
Код: Выделить всё
#!/bin/bash
logfile="/home/user/scripts/mona43.$(date +%Y-%m-%d_%H%M).log"
exec 1>> >(ts '[%Y-%m-%d %H:%M:%S]' > "$logfile") 2>&1
echo "Starting monitoring Port 43"
tail -fn0 /var/log/syslog | \
while read line ; do
echo "$line" | grep "USW-Pro-48-PoE-7.1.26+15869: switch: TRAPMGR: Link Down: 0/43"
if [ $? = 0 ]
then
echo "Oh shit Port 43 is disconnected, disable port"
/home/user/scripts/adminp43.sh
echo "5 minutes timer starts, re-enabling Port 43 after that"
sleep 5m
/home/user/scripts/adminp43on.sh
fi
done
Я новичок в написании сценариев Bash, поэтому не уверен, можно ли добавить несколько строк для поиска в хвосте, например echo "$line2 " | grep «Другой порт», а затем добавив его к другому, если $line2 = 0, запустите другой скрипт. При этом и не линейный. Это означает, что $line2 не выполняется, если сначала не найдена $line, а затем выполняется.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ute-script
Мобильная версия