URL: https://linuxfr.org/forums/programmation-shell/posts/execution-d-un-script-local-sur-des-machines-distantes Title: execution d'un script local sur des machines distantes Authors: linux35400 Date: 2017年06月29日T08:16:08+02:00 License: CC By-SA Tags: ksh, shell et red_hat Score: 3 Bonjour, Je viens vers vous pour un peu d'aide, j'ai développé un script pour une société qui permet d'avoir une météo du parc serveurs (états fs, verif des process principaux...)mon problème est que je ne trouve pas la solution pour l'executer depuis mon serveur de test sur les autres environnements, j'ai mis des clés ssh depuis mon serveur vers les serveurs clients mais à moins de déposer le script sur les serveurs et de les executer depuis mon serveur, je ne vois pas de solutions. ```sh #!/bin/ksh # #-------------------------------------------------------------------------------------------- # # Control_Matinal.sh : Verification FS/Process # # Usage : Control_Matinal.sh # # Auteur: EF pour OAB # 28 juin 2017 #-------------------------------------------------------------------------------------------- #Chemins WAY=/home/SCRIPTS/control hosts=`cat $WAY/hosts.conf` #Mailing list Email="" #Rep log log_date=`date +%Y%m%d` host=`echo $HOSTNAME |sed -e "s/.INFRACMPPP.LOCAL//"` fs_log=/tmp/fs.$host.log FIC_LOG=$WAY/log_fin.$log_date.txt fonction1 () { FS_BAD=0 echo $host> $fs_log touch $fs_log for i in `df -k |awk '{print 4ドル";"$NF}'| grep "%" | grep -v Used` do # Définition des variables internes et on attribue le bon format en supprimant le % taille=`echo $i | cut -d';' -f1 | sed -e "s/%//g"` nomfs=`echo $i | cut -d';' -f2` if [[ $taille -gt 30 ]] then echo "ALERTE - Le Fs $nomfs est rempli à $taille %\n">> $fs_log ((FS_BAD = $FS_BAD + 1)) elif [[ $taille -gt 20 ]] then echo "ATTENTION - Le Fs $nomfs est rempli à $taille %\n">> $fs_log ((FS_BAD = $FS_BAD + 1)) fi done if [[ $FS_BAD -lt 1 ]] then echo " Les FileSystems ne posent pas de problemes ">> $fs_log fi } fonction2 () { MSBAD=0 REP=/etc/init.d STT=0 echo "Liste des microservices sur $host\n">> $fs_log echo "***************************************">> $fs_log for i in `ls $REP/cloud*|sed -e "s/\/etc\/init.d\///g` do echo -n "$i: ">> $fs_log service $i status>> $fs_log STT=$? if [[ $STT -eq 3 ]] then echo "Le service $i ne tourne pas, veuillez le relancer">> $fs_log ((MS_BAD = $MS_BAD + 1)) fi done if [[ $MS_BAD -eq 0 ]] then echo "Les services sont fonctionnels">> $fs_log fi } func_mail () { cat ${FIC_LOG} | mailx -s "Rapport Controle Matinal" $EmailOrange } Menu () { echo "choix 1 ou 2:\n" read reponse case $reponse in 1)fonction1;; 2)fonction2;; *)echo "fonction a mettre en place";; esac } #Main Menu #for host in $hosts #do ssh root@$host 'bash -s'< df -k |awk '{print 4ドル";"$NF}'| grep "%" | grep -v Used #ssh root@$host < fonction2 #scp root@$host:$fs_log $fs_log #done cat $fs_log>> $FIC_LOG rm -f $fs_log func_mail exit 0 ```