Ajuste um script para obter apenas um determinado relatório de saída do rtvscand

0

Eu tenho o seguinte script de trabalho:

for i in 'cat list' ; do 
  ssh root@$i "uname -n ; cat /opt/Symantec/virusdefs/definfo.dat ; service rtvscand status ;  echo ....................................................................." ; 
done | tee /tmp/symantec_info.'date +"%m%d%y"'

Produz a saída que se parece com:

server1.local
[DefDates]
LastDefs=20150824.003
CurDefs=20150826.002
rtvscand is running
.....................................................................
server2.local
[DefDates]
LastDefs=20150609.001
CurDefs=20150610.004
rtvscand is not running
.....................................................................
server3.local
[DefDates]
LastDefs=20150607.001
CurDefs=20150608.004
rtvscand is running
.....................................................................

No entanto, quero que a saída mostre apenas os servidores que possuem o rtvscand em execução. Em outras palavras, quero que a saída seja exatamente como:

server1.local
[DefDates]
LastDefs=20150824.003
CurDefs=20150826.002
rtvscand is running
.....................................................................
server3.local
[DefDates]
LastDefs=20150607.001
CurDefs=20150608.004
rtvscand is running
.....................................................................
    
por tester787 02.09.2015 / 21:52

1 resposta

2

Você pode decidir com base na saída de service rtvscand status :

[ "$(service rtvscand status)" = 'rtvscand is running' ] && do_what_you_want

Isso significa que se a saída de rtvscand is running for rtvscand is running , então faremos algumas coisas, caso contrário, não.

Assim, o seu script pode ter a forma:

while IFS= read -r name; do
   ssh root@"$name" '[ "$(service rtvscand status)" = "rtvscand is running" ] && \
                      { uname -n; cat /opt/Symantec/virusdefs/definfo.dat ;}'
done <list.txt
    
por 03.09.2015 / 22:36