grep logfiles via SSH on multiple server

Mittels des unten angeführten Shellscripts ist es möglich mit grep logfiles via SSH on multiplen server einzusammeln. Diese werden in eine Logfile geschrieben. Jetzt hat man alle Möglichkeiten die, die Bash bietet um alles mögliche mit den Logs anzustellen. Zum Beispiel zählen, wie of ein Logeintrag vorkommt:

 grep LOGEINTRAG |wc -l

grep logfiles via SSH on multiple server

#!/usr/bin/env bash
#Date: 16.1.2018
#Version: 0.1
#Author: AWiechert
 
HOSTS=(ipaddr1 ipaddr2 ipaddr3)
USER=alex 
LOG=~/mylog 
DATE=$(date +%Y-%m-%d-%H:%M:%S)
 
echo SEARCHTERM: $1 >>$LOG
for HOSTS in ${HOSTS[@]}; do
   echo "== $HOSTS ==" >> $LOG
   ssh $USER@$HOSTS "grep '$1' /var/log/www/ >> $LOG
done
less $LOG
mv $LOG $DATE-mylog

Bespiel Output

./multi.sh 'grep logfiles via SSH auf multiplen  Servern'
SEARCHTERM: grep logfiles via SSH auf multiplen  Servern
== 172.30.100.27 ==
12
== 172.30.100.28 ==
20
== 172.30.100.29 ==
31

Um das ganze noch aufzuhübschen, da man sich ja nicht alle möglichen IP Adressen merken kann man folgendes verwenden. Im gezeigten Beispiel möchte ich wissen, welche Java Versionen auf den Server installiert sind.

#!/usr/bin/env bash
 
user="awiechert"
log=~/check_java.log
date=$(date +%Y-%m-%d-%H:%M:%S)
 
cat > hosts.$$ <>$log
        ssh -n $user@$IPADDR 'java -version' >> $log
done < hosts.$$
 
less $log
rm -rf $log
rm -rf hosts.$$

Bespiel Output

./multi.sh
== HOST_1 ==
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
== HOST_2 ==
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
== HOST_3 ==
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
== HOST_4 ==
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

Quelle:
httpss://superuser.com/questions/533209/how-to-grep-logfile-via-ssh-on-multiple-servers