실행하고 개수를 생성하는 선택 쿼리가 있습니다. 예를 들어 다음 레코드가 포함된 텍스트 파일로 답변을 내보냅니다.
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인 경우 원하는 메시지 또는 원하는 제목과 주소가 있는 메시지를 얻을 수 있습니다. 미리 정의된 여러 문자열을 반복할 수 있습니다.
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" [email protected]
fi
done
답변2
awk '/[[:digit:]]/ { if ($2 == 0) { system("echo \""$0"\" | mailx -s \"Check Count\" [email protected]") } }' countfile
awk를 사용하여 숫자가 포함된 모든 줄을 확인할 수 있습니다. 그런 다음 awk의 시스템 기능을 사용하여 이메일을 보냅니다.
고지 사항 - 이러한 솔루션을 구현하기 전에 명령 주입과 관련된 위험을 판단해야 합니다.