한 가지 방법은 cron
작업에 있습니다. 그것은 다른 솔루션보다 복잡하지만 매우 안정적입니다 ("체크 스크립트"가 충돌하더라도 기간이 끝난 후 cron
까지 다시 호출됩니다). cron
가 될 수 다음 env DISPLAY=:0
이 경우에 필요하지 않을 수도 있습니다
*/15 * * * * env DISPLAY=:0 /folder/checkscript >/dev/null 2>&1
, 또는 그것은 스크립트 (에 따라 필요할 수 있습니다 참고 : 당신은 찾을 에코 $DISPLAY
을 실행 사건이 적응해야 할 수도 있습니다 케이스에 변수를 넣으십시오). 그것은 귀하의 질문에 포함되지 않습니다
#!/bin/bash
if [ -f /tmp/checkVarCount ]; then oldCheckVar="$(cat /tmp/checkVarCount)"; else oldCheckVar="0"; fi
checkVar="$(grep -o "pattern" /folder/file | wc -l)"
echo "$checkVar" > /tmp/checkVarCount
checkVar="$(($checkVar-$oldCheckVar))"
if [ "$checkVar" -eq 3 ]; then command1; fi
if [ "$checkVar" -eq 5 ]; then command2; fi
exit
,하지만 당신은뿐만 아니라 패턴이 4 번, 7 번 발견되면 명령을 실행하는 데 의미가 있다면, 당신은을 변경할 수 있습니다 :
귀하의 "checkscript"
가 될 수있다 위의 관련 부분 :
if [ "$checkVar" -ge 3 ] && [ "$checkVar" -lt 5 ]; then command1; fi
if [ "$checkVar" -ge 5 ]; then command2; fi
지금까지 시도한 내용은 무엇입니까? 가장 중요한 구현은 매번 패턴의 총 발생 횟수를 읽고 해당 횟수를 파일에 저장하는 것입니다. 15 분 간격으로, 이전에 저장된 것과 현재의 횟수를 비교합니다. – codeforester
코드를 표시하십시오 –