Я пытаюсь контролировать определенный c порт коммутатора. Мне нужно отправить электронное письмо, если мой запрос возвращает число> = 2.
Я проверил свой запрос, и он работает в Mysql CLI:
SELECT COUNT(message)
FROM devices, eventlog WHERE sysName = 'sysName'
AND message = 'ifOperStatus: up -> down'
AND datetime >= now() - INTERVAL 15 MINUTE
Этот запрос возвращает правильное значение . Итак, я решил создать сценарий, который выполняет запрос и получает информацию:
#!/usr/bin/bash
mysql -u DB_USER -p PASSWORD DB_NAME <<MY_QUERY
SELECT COUNT(message)
FROM devices, eventlog WHERE sysName = 'swysName'
AND message = 'ifOperStatus: up -> down'
AND datetime >= now() - INTERVAL 15 MINUTE
MY_QUERY
Когда я выполняю этот сценарий в терминале, я получил следующее:
librenms@librenms:/opt/librenms/scripts$ bash -x test1.sh
+ mysql -u DB_USER '-p PASSWORD' DB_NAME
COUNT(message)
0
Теперь у меня есть чтобы получить значение запроса в переменной и проверить переменную с «если» в сценарии как:
....
if ($nb >= 2)
Затем, если условие истинно, отправьте письмо администратору предупреждения. Я не знаю, как получить значение в переменной и отправить по почте в скрипте bash. Если кто-то может мне помочь ... Спасибо.