Basta editar:
grep ttl <<< "$PONG"
Para:
grep -q ttl <<< "$PONG"
A saída obtida é de grep
. Com o -q
flag grep
está silencioso.
Acabei de criar este script para monitoramento de host.
O objetivo é executar ping no host e registrar a saída em um arquivo, mas também mostrar a saída para o terminal. Se o host não estiver respondendo, registrará a hora com a mensagem de erro apropriada. O objetivo é registrar a data e a hora dos tempos para cima / para baixo.
#!/bin/bash
DATE=$(date +"%d.%m.%Y %T")
SHORT_DATE=$(date +"%d.%m.%Y")
echo
echo "Pinging host " $@
echo
HOST=$@
ping $HOST | while read PONG
do
grep ttl <<< "$PONG"
if [ $? -eq 0 ]; then
echo "'date': $PONG"
echo "'date': $PONG" &>> ping_check_$SHORT_DATE.log
else
echo "'date': ping failed, $HOST host is DOWN!" &>> ping_check_$SHORT_DATE.log
echo "$PONG" &>> ping_check_$SHORT_DATE.log
fi
done
Agora, o problema é que, quando o ping é bem-sucedido, a saída do script se parece com isso (recebo duas linhas de saída e não preciso da primeira linha):
[spirit@vas scripts]$ ./ping_check3.sh 10.10.0.254
Pinging host 10.10.0.254
64 bytes from 10.10.0.254: icmp_seq=1 ttl=255 time=1.18 ms
Wed Jun 3 10:35:52 CEST 2015: 64 bytes from 10.10.0.254: icmp_seq=1 ttl=255 time=1.18 ms
64 bytes from 10.10.0.254: icmp_seq=2 ttl=255 time=1.28 ms
Wed Jun 3 10:35:53 CEST 2015: 64 bytes from 10.10.0.254: icmp_seq=2 ttl=255 time=1.28 ms
64 bytes from 10.10.0.254: icmp_seq=3 ttl=255 time=1.34 ms
A saída acima é do TERMINAL. Preciso apenas do resultado com o timestamp e não da primeira linha que vem do ping $HOST
?:
Wed Jun 3 10:35:52 CEST 2015: 64 bytes from 10.10.0.254: icmp_seq=1 ttl=255 time=1.18 ms
Como posso corrigir o script para que apenas a linha com o carimbo de data / hora seja exibida na saída?
EDITAR:
Apenas para esclarecimentos:
A saída do arquivo de log é assim:
Wed Jun 3 10:35:52 CEST 2015: 64 bytes from 10.10.0.254: icmp_seq=1 ttl=255 time=1.18 ms
Wed Jun 3 10:35:53 CEST 2015: 64 bytes from 10.10.0.254: icmp_seq=2 ttl=255 time=1.28 ms
Wed Jun 3 10:35:54 CEST 2015: 64 bytes from 10.10.0.254: icmp_seq=3 ttl=255 time=1.34 ms
Wed Jun 3 10:35:55 CEST 2015: 64 bytes from 10.10.0.254: icmp_seq=4 ttl=255 time=1.58 ms
Tags bash scripting shell-script