diff --git a/ifdown.sh b/ifdown.sh index 7b54cfe..26baa45 100755 --- a/ifdown.sh +++ b/ifdown.sh @@ -1,5 +1,4 @@ #!/bin/bash - # Script de suppression des interfaces réseau d'un conteneur Systemd-nspawn if [[ -n "${1}" ]]; then @@ -9,24 +8,24 @@ else exit 1 fi +# Fonction exécuté en deuxième. Permet la génération de commandes pour la suppression d'interfaces réseau genCmdIntRzo(){ - # Fonction exécuté en deuxième. Permet la génération de commandes pour la suppression d'interfaces réseau. if [[ "${interface_init}" -eq 1 ]]; then commandes_a_executer+=( "ip link delete ${interface}" ) - # Réinitialisation des variables témoins + # Réinitialisation de la variable témoin interface_init=0 fi } +# Fonction exécuté en premier. Récupère les noms des interfaces réseau dans le fichier de configuration du conteneur recupParams(){ - # Fonction exécuté en premier. Récuppère les paramètres du fichier de configuration du conteneur - declare -a params_int=( $(grep -B 2 "^Interface" /etc/systemd/nspawn/"${nom_conteneur}".nspawn | sed "/^--/d") ) + declare -a params_int=( $(grep "^Interface" /etc/systemd/nspawn/"${nom_conteneur}".nspawn) ) nb_params="${#params_int[*]}" - for ((i=0 ; "${nb_params}" - "${i}" ; i++)); do - nom_param=$(echo "${params_int[${i}]}" | sed "s/=.*//" | sed "s/#//") - val_param=$(echo "${params_int[${i}]}" | sed "s/.*=//") + for ((id_param_fichier=0 ; "${nb_params}" - "${id_param_fichier}" ; id_param_fichier++)); do + nom_param=$(echo "${params_int[${id_param_fichier}]}" | sed "s/=.*//" | sed "s/#//") + val_param=$(echo "${params_int[${id_param_fichier}]}" | sed "s/.*=//") # Récupération des données d'après le fichier de configuration if [ "${nom_param}" == "Interface" ]; then @@ -44,14 +43,15 @@ recupParams(){ done } +# Fonction d'éxécution des commandes préparées dans la fonction genCmdIntRzo() execCmdIntRzo(){ - for ((i=0 ; "${#commandes_a_executer[*]}" - "${i}"; i++)); do - ${commandes_a_executer["${i}"]} + for ((id_commande_rzo=0 ; "${#commandes_a_executer[*]}" - "${id_commande_rzo}"; id_commande_rzo++)); do + ${commandes_a_executer["${id_commande_rzo}"]} done } +# Fonction d'exécution du script de suppression d'interfaces réseau pour le conteneur en cours principale(){ - # Fonction d'exécution du script de création d'interfaces réseau pour le conteneur en cours. recupParams execCmdIntRzo }