fonction run_ssh et run_scp avec timeout + options

This commit is contained in:
2025-05-29 07:23:32 +02:00
parent 3ae1fa108e
commit bab9c771ae

View File

@@ -12,10 +12,28 @@ NC='\033[0m' # No Color
# Mise à jour des machines présentes dans .ssh/config avec choix d'ignorer certaines. # 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 # Fonction pour mettre à jour avec apt
update_with_apt() { update_with_apt() {
echo -e " - Mise à jour avec apt sur $1 \n" echo -e " - Mise à jour avec apt sur $1 \n"
ssh -tt "$1" ' run_ssh "$1" '
sudo apt -y -q clean && sudo apt -y -q clean &&
sudo apt -y -q update && sudo apt -y -q update &&
sudo apt -y -q full-upgrade && sudo apt -y -q full-upgrade &&
@@ -27,7 +45,7 @@ update_with_apt() {
# Fonction pour mettre à jour avec dnf # Fonction pour mettre à jour avec dnf
update_with_dnf() { update_with_dnf() {
echo -e " - Mise à jour avec dnf sur $1 \n" 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" echo -e "\n"
} }
@@ -151,10 +169,10 @@ run_custom_script() {
if [ -f "$custom_script" ]; then if [ -f "$custom_script" ]; then
echo -e " - Exécution du script spécifique pour ${GREEN}$machine${NC}" echo -e " - Exécution du script spécifique pour ${GREEN}$machine${NC}"
# Copier le script sur la machine et l'exécuter # 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 if [ $? -eq 0 ]; then
echo " - Script copié, exécution en cours..." echo " - Script copié, exécution en cours..."
ssh -tt "$machine" ' run_ssh "$machine" '
chmod +x /tmp/updateall_custom.sh chmod +x /tmp/updateall_custom.sh
sudo /tmp/updateall_custom.sh sudo /tmp/updateall_custom.sh
status=$? status=$?