![다양한 소스 및 메시지에 대한 텍스트 파일의 레코드 수를 확인하는 방법, 레코드가 0이 아닙니다.](https://linux55.com/image/116589/%EB%8B%A4%EC%96%91%ED%95%9C%20%EC%86%8C%EC%8A%A4%20%EB%B0%8F%20%EB%A9%94%EC%8B%9C%EC%A7%80%EC%97%90%20%EB%8C%80%ED%95%9C%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EB%A0%88%EC%BD%94%EB%93%9C%20%EC%88%98%EB%A5%BC%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%2C%20%EB%A0%88%EC%BD%94%EB%93%9C%EA%B0%80%200%EC%9D%B4%20%EC%95%84%EB%8B%99%EB%8B%88%EB%8B%A4..png)
실행하고 개수를 생성하는 선택 쿼리가 있습니다. 예를 들어 다음 레코드가 포함된 텍스트 파일로 답변을 내보냅니다.
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의 시스템 기능을 사용하여 이메일을 보냅니다.
고지 사항 - 이러한 솔루션을 구현하기 전에 명령 주입과 관련된 위험을 판단해야 합니다.