[gull] Bash get stat simulteneously on many hosts

felix felix at f-hauri.ch
Fri May 31 11:44:46 CEST 2024


Bonjour,

Afin de démontrer
 - comment lancer des script sh ou bash à distance en utilisant declare -f
 - comment grouper ou gérer des sorties de script parallelisés
 - connaître les CPU de mes machines (initialement j'ai fait le
     script pour mes raspberry pi)

  Je suis parti de
  $ for host in rpisalon cartou raspi-2 raspi-3 rpi4-20230101;do
     ssh root@$host bash <<<"
            mapfile -d '' -t model < /sys/firmware/devicetree/base/model;
            printf '%-16s %s\n' '$host' \"\$model\"" &
    done | sort

  Qui me sort en moins de 2 secondes:
    cartou           Raspberry Pi 3 Model B Rev 1.2
    raspi-2          Raspberry Pi Model B Rev 2
    raspi-3          Raspberry Pi 3 Model B Plus Rev 1.3
    rpi4-20230101    Raspberry Pi 4 Model B Rev 1.1
    rpisalon         Raspberry Pi 2 Model B Rev 1.1

Pour ajouter: /proc/uptime, free et df

J'ai finalement pondu 2 script différents:

  La version la plus simpliste
  https://f-hauri.ch/vrac/getCurrentStat-bash2sort.sh.txt
  mais qui envoie des fonctions bash complexes au targets

  La version la plus robuste
  https://f-hauri.ch/vrac/getCurrentStat-bash4sh.sh.txt
  qui envoye des script de collect compatible POSIX shell
  et gère les retours séparément afin d'éviter tout mélange.

-- 
 Félix


More information about the gull mailing list