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