From bab9c771ae1e0794e2938dec358658368ec477a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Thu, 29 May 2025 07:23:32 +0200 Subject: [PATCH] fonction run_ssh et run_scp avec timeout + options --- local/bin/updateall.sh | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/local/bin/updateall.sh b/local/bin/updateall.sh index 6ff6f87..8468daf 100755 --- a/local/bin/updateall.sh +++ b/local/bin/updateall.sh @@ -12,14 +12,32 @@ NC='\033[0m' # No Color # Mise à jour des machines présentes dans .ssh/config avec choix d'ignorer certaines. +# fonction run_ssh et run_scp avec timeout + options +SSH_OPTS="-o ConnectTimeout=5 -o BatchMode=yes -o StrictHostKeyChecking=accept-new" +SSH_TIMEOUT="5" + +run_ssh() { + local machine="$1" + local cmd="$2" + timeout "$SSH_TIMEOUT" ssh $SSH_OPTS "$machine" "$cmd" +} + +run_scp() { + local src="$1" + local dest="$2" + local machine="$3" + timeout "$SSH_TIMEOUT" scp $SSH_OPTS "$src" "$machine:$dest" +} + + # Fonction pour mettre à jour avec apt update_with_apt() { echo -e " - Mise à jour avec apt sur $1 \n" - ssh -tt "$1" ' - sudo apt -y -q clean && - sudo apt -y -q update && - sudo apt -y -q full-upgrade && - sudo apt -y -q autoremove + run_ssh "$1" ' + sudo apt -y -q clean && + sudo apt -y -q update && + sudo apt -y -q full-upgrade && + sudo apt -y -q autoremove ' echo -e "\n" } @@ -27,7 +45,7 @@ update_with_apt() { # Fonction pour mettre à jour avec dnf update_with_dnf() { echo -e " - Mise à jour avec dnf sur $1 \n" - ssh -tt "$1" 'sudo dnf check-update && sudo dnf upgrade -y' + run_ssh "$1" 'sudo dnf check-update && sudo dnf upgrade -y' echo -e "\n" } @@ -151,10 +169,10 @@ run_custom_script() { if [ -f "$custom_script" ]; then echo -e " - Exécution du script spécifique pour ${GREEN}$machine${NC}" # Copier le script sur la machine et l'exécuter - scp "$custom_script" "$machine:/tmp/updateall_custom.sh" + run_scp "$custom_script" "/tmp/updateall_custom.sh" "$machine" if [ $? -eq 0 ]; then echo " - Script copié, exécution en cours..." - ssh -tt "$machine" ' + run_ssh "$machine" ' chmod +x /tmp/updateall_custom.sh sudo /tmp/updateall_custom.sh status=$?