Estou precisando criar um shell script para monitorar "linha a linha" uma url. Assim que tive esse problema logo pensei: tail -f ... e logo quebrei cara =\
Tentei algumas coisas, e como não tive sucesso, cá estou eu.
O problema é o seguinte: Passei a usar um adsl router, e infelizmente não posso mais usufruir do iptables(inclusive dos logs do mesmo). Em compensação o router possui um firewall, e uma página com o log do mesmo. É exatamente esta a página que quero logar.
Cada linha desta página tem o seguinte formato:
0000-000-000 66:66 |Firewall |D:19:0 TCP 666.6.6.6:666 -> 666.66.6.66:66666 len=1492 id=49537 DF=1 MF=0 byte-off=0
O tamanho dos campos variam.
Eu tentei o seguinte:
Código :#!/bin/bash Url=http://ip-do-router/log.htm Arquivo=/tmp/tal while true; do Tmp=`cat $Arquivo` lynx -dump -width=800 $Url | tr -s "\n" | cut -d"|" -f2,3 | tr -s " " | grep -v "BUTTON" > $Arquivo sleep 10 done
Isso me gera um arquivo onde cada linha é +/- assim:
Firewall |D:19:0 TCP 666.6.6.6:666 -> 666.66.6.66:66666 len=1492 id=49537 DF=1 MF=0 byte-off=0
Rodei o script, e então dei um: tail -f /tmp/tal
Ele funciona, mas logo em seguida o tail é quebrado:
tail: /tmp/tal: file truncated
Provavelmente isso aconteceu pq o lynx tentou jogar o conteúdo da url pro arquivo, enquanto o tail lia o mesmo arquivo.
Daí eu queria saber como resolver isso... alguém tem alguma sugestão, ou uma melhor forma de se fazer isso?
EDIT: ajeitar o título