Bonjour,
j'ai un fichier contenant des hostname fqdn de machines dans un réseau.
le script doit lire ce fichier dans le but de se connecter à chaque machines présentes dans le fichier.
une fois connecté au server, il va y traiter des commandes.
#!/bin/bash
#include colors
. "$(dirname "$0")"/colors.txt
#vars
DATE="$(date)"
TIMEOUT="10"
FQDN=$(hostname --fqdn)
SSHKEY="/account/.ssh/cle_publique"
SSHOPT="timeout ${TIMEOUT} ssh -i ${SSHKEY} -n -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
SSHUSR="account"
DSTSRV="$(cat ./server_list.txt)"
#se connecter dans chaque server de la liste et faire le check
while read ${DSTSRV[@]}
do
if ssh -i ${SSHKEY} ${SSHUSR}@${DSTSRV[@]} "if [ -s \"${X}/.ssh/authorized_keys\" ]" > /dev/null 2>&1;then
echo "$Green### ${FQDN} ------ ${X}/.ssh/authorized_keys : ###$Nc"
sed -e "/^ssh.*/i \\\n# Last seen $DATE # --$Lblue Human Key$Nc" -e "/.*==.*/i \\\n# Last seen $DATE # -- $Yellow Service Key$Nc" "${X}/.ssh/authorized_keys"
else
error=1
fi
done < <(timeout ${TIMEOUT} ssh -i ${SSHKEY} -n -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${SSHUSR}@${DSTSRV[@]} "cat /etc/passwd | cut -d ':' -f6 | sort | uniq" )
voici la sortie :
++ timeout 10 ssh -i /root/.ssh/id-ed25519_gernoult -n -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null account@machine1.fqdn account@machine2.fqdn account@machine3.fqdn account@machine4.fqdn account@machine5.fqdn 'cat /etc/passwd | cut -d '\'':'\'' -f6 | sort | uniq'
./prog.sh: line xx: read: `account@machine1.fqdn': not a valid identifier
En fait mon problème que je souhaite solutionner est que la commande SSH incrémente toute les machines sur lesquelles il faut se connecter en meme temps.
Normalement il devrait faire séquentiellement :
timeout 10 ssh -i /root/.ssh/id-ed25519_gernoult -n -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null account@machine1.fqdn 'cat /etc/passwd | cut -d '\'':'\'' -f6 | sort | uniq'
puis
timeout 10 ssh -i /root/.ssh/id-ed25519_gernoult -n -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null account@machine2.fqdn 'cat /etc/passwd | cut -d '\'':'\'' -f6 | sort | uniq'
etc..
Est-ce que quelqu'un pourrait me filer un tips pour que ca fonctionne comme cela? (et en meme temps, je m'endormirais moins c*n ce soir^^)
Merci!