스크립트는 들어오는 HTTP 메시지를 모니터링하여 zabbix라는 모니터링 응용 프로그램으로 전달합니다. 그러나 정상적으로 작동하지만 약 1-2 일 후에는 작동을 멈 춥니 다. Heres는 내가 지금까지 알고있는 것을 :bash 스크립트가 작동을 멈추는 이유
- 내가
pgrep
사용 문제는 WHILE loop 또는 tail 명령의 어딘가에 있어야합니다. 스크립팅시 새로운 것이므로 누군가 즉시 문제를 발견 할 수 있습니까?
#!/bin/bash
tcpflow -p -c -i enp2s0 port 80 | grep --line-buffered -oE 'boo.php.* HTTP/1.[01]' >> /usr/local/bin/logfile &
pipe=/tmp/fifopipe
trap "rm -f $pipe" EXIT
if [[ ! -p $pipe ]]; then
mkfifo $pipe
fi
tail -n0 -F /usr/local/bin/logfile > /tmp/fifopipe &
while true
do
if read line <$pipe; then
unset sn
for ((c=1; c<=3; c++)) # c is no of max parameters x 2 + 1
do
URL="$(echo $line | awk -F'[ =&?]' '{print $'$c'}')"
if [[ "$URL" == 'sn' ]]; then
((c++))
sn="$(echo $line | awk -F'[ =&?]' '{print $'$c'}')"
fi
done
if [[ "$sn" ]]; then
hosttype="US2G_"
host=$hosttype$sn
zabbix_sender -z nuc -s $host -k serial -o $sn -vv
fi
fi
done
여기서 변수 $ host에 값을 할당합니까? – Cyrus
이것은 도움이 될 수 있습니다 : [bash 스크립트를 디버깅하는 방법?] (http://unix.stackexchange.com/q/155551/74329) – Cyrus
나는 여기에 게시하기 위해 스크립트를 약간 단순화했습니다. 게시물을 수정했습니다. – tarmogr