2 개의 로그 파일이 업데이트되지 않으면 쉘 스크립트로 경고를 보내려고합니다. 현재 크기를 얻으려고합니다 ... 10 초 동안 기다렸다가 파일 크기가 변경되지 않으면 전자 메일 경고를 보냅니다. 어떤 도움이 될거야!쉘 스크립트 - 로그 파일이 업데이트되지 않습니다.
내 코드 :
#! /bin/bash
logFiles="lg.log lg2.log"
logLocation="/user/file/logs"
sleepTime=10
subject="issue - file not updated"
failMessage="::no recent updates "
successMessage="OK"
not_updated_time=0
arr=($logFiles)
arrlen=${#arr[@]}
arrcount=()
date
for ((count=0; count<arrlen; count++)) ; do
arrcount[$count]=`ls -l $logLocation${arr[$count]} |awk '{print $5}'`
echo "${arr[$count]} Original size :: ${arrcount[$count]}"
done
echo
while [ "e" == "e" ] ; do
sleep $sleepTime
date
for ((count=0; count<arrlen; count++)) ; do
nc=`ls -l $logLocation${arr[$count]} |awk '{print $5}'`
echo -n "${arr[$count]} "
if [ $nc == ${arrcount[$count]} ] ; then
echo 'error' | mailx -s "issue" [email protected]
else
arrcount[$count]=$nc
echo $successMessage
not_updated_time=0
fi
done
echo
done
는 스크립트가 여전히 작동하지 쉼표로 문제가 해결되었습니다. 어떤 아이디어?
'의 편곡에 = ($ 로그 파일)을'무엇을'comma'에 무슨 일이 일어나고? –
가능한 경우'ls -l' 출력을 사용하지 마십시오. 대부분의 시스템에는 filespec (단일 또는 다중)에 필요한 정보를 인쇄 할 수있는'stat' 프로세스가 있습니다. 행운을 빕니다. – shellter
@David C. Rankin이 의미하는 바는 무엇입니까 – connollyc4