다양한 소스 및 메시지에 대한 텍스트 파일의 레코드 수를 확인하는 방법, 레코드가 0이 아닙니다.

다양한 소스 및 메시지에 대한 텍스트 파일의 레코드 수를 확인하는 방법, 레코드가 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

위 소스의 개수가 0이 아닌지 확인하고, 그렇지 않은 경우 필요한 팀에 메일로 보내는 Unix 명령을 작성하고 싶습니다.

답변1

원하는 프로세스의 두 번째 열의 출력을 얻는 데 사용할 수 있으며 grep, 0인 경우 원하는 메시지 또는 원하는 제목과 주소가 있는 메시지를 얻을 수 있습니다. 미리 정의된 여러 문자열을 반복할 수 있습니다.
awktest
echomailmailx

아래 답변은 전적으로 질문에 제공된 결과를 기반으로 하며 추가 검사에서 동일한 패턴 출력이 발생한다고 가정합니다.

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" [email protected]
fi
done

답변2

 awk '/[[:digit:]]/ { if ($2 == 0) { system("echo \""$0"\" | mailx -s \"Check Count\" [email protected]") } }' countfile

awk를 사용하여 숫자가 포함된 모든 줄을 확인할 수 있습니다. 그런 다음 awk의 시스템 기능을 사용하여 이메일을 보냅니다.

고지 사항 - 이러한 솔루션을 구현하기 전에 명령 주입과 관련된 위험을 판단해야 합니다.

관련 정보