Как проверить количество записей из текстового файла для другого источника и почты, это запись не равно 0

У меня есть запрос выбора, который выполняется и генерирует счетчик. Он экспортирует ответ в текстовый файл, в котором есть следующие записи, например: [

    Unprocessed record for A Sources
----------------------Unprocessed record count for ABC SOURCE ------------------
abc_count=            0
--------------------Unprocessed record count for CDE Source --------
CDE_count=            0
-----------------------Unprocessed record count for DEF Source -----------------
DEF_count=            0
------------------Unprocessed record count for GHI Source ----------------------
GHI_count=            56

] Я хочу написать команду Unix, которая проверяет, не равно ли для указанного выше источника какое-либо из счетчиков 0 если он не равен 0, отправьте его по почте требуемой команде.

-2
21.08.2017, 16:34
2 ответа

Можно использовать grepдля получения вывода нужного процесса
awkвторой столбец и testесли он нулевой
затем echoсообщение, которое вы хотите mailили mailxс нужной темой и адресами.
Вы можете перебирать несколько предопределенных строк

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

for CHECK in $(awk '{print $1}' output.txt | grep count=| cut -d"=" -f1)
do
if [ $(grep $CHECK output.txt | awk '{print $2}') -ne 0 ]
then  
echo "$(grep $CHECK output.txt")" | mailx -s "CHECK ABC PROCESS" foo@bar.com
fi
done
0
28.01.2020, 05:17
 awk '/[[:digit:]]/ { if ($2 == 0) { system("echo \""$0"\" | mailx -s \"Check Count\" someone@someserver.com") } }' countfile

Вы можете использовать awk и проверить все строки с цифрами. Затем используйте системную функцию awk для отправки электронных писем.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ -Прежде чем внедрять такое решение, необходимо оценить риски, связанные с внедрением команд.

0
28.01.2020, 05:17

Теги

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