
Meu sistema telefônico (fritzbox 7170) gera dados de log no telnet e é necessário algum tipo de script para iniciá-lo crontab
, capturar todos os dados e gravar qualquer coisa que chegue em um arquivo de log sem demora.
Ele também precisa ser capaz de detectar quaisquer desconexões, pois precisa se reconectar o mais rápido possível (digamos, dentro de alguns segundos) para que nenhuma chamada seja perdida.
Os arquivos de log serão usados para monitorar a linha, enviar alertas por e-mail sobre todas as chamadas, alterar o status da linha no meu site e muito mais. No momento funciona no Windows, mas não na minha caixa Debian (RaspberryPi).
No Windows é assim; (e funciona a cada 10 minutos)
taskkill /f /im telnet.exe
copy /B log.old+log.txt log.old
sleep 1
del log.txt /f
telnet.exe -flog.txt fritz.box 1012
Responder1
OK, para obter o log da caixa, você provavelmente só precisa fazer
netcat fritz.box 1012 >> log.txt
Sua distribuição pode nomear o programa netcat nc
.
O script do Windows que você postou acima está errado, pois elimina todas as instâncias do telnet - e é supérfluo, pois tudo o que faz é anexar log.txt a log.old.
Se você quiser a parte mais recente do log, simplesmente execute tail -100 log.txt
.