parent
8f1a2c449e
commit
0361186d9a
@ -1,4 +1,60 @@
|
||||
#!/bin/bash
|
||||
#echo "$1 éteint." >> /tmp/$1
|
||||
|
||||
#ip link del ${1}_h
|
||||
# Script de suppression des interfaces réseau d'un conteneur Systemd-nspawn
|
||||
|
||||
if [[ -n "${1}" ]]; then
|
||||
nom_conteneur="${1}"
|
||||
else
|
||||
echo "Erreur: aucun nom de conteneur renseigné."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
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
|
||||
interface_init=0
|
||||
fi
|
||||
}
|
||||
|
||||
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") )
|
||||
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/.*=//")
|
||||
|
||||
# Récupération des données d'après le fichier de configuration
|
||||
if [ "${nom_param}" == "Interface" ]; then
|
||||
if [[ $(ip link show "${val_param}" 2> /dev/null) ]]; then
|
||||
interface="${val_param}"
|
||||
interface_init=1
|
||||
else
|
||||
echo "Erreur: l'interface ${val_param} n'est pas existante. Arrêt immédiat du script \"${0}\" sans aucune modification du système."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Génération des commandes de création des interfaces réseau du conteneur
|
||||
genCmdIntRzo
|
||||
done
|
||||
}
|
||||
|
||||
execCmdIntRzo(){
|
||||
for ((i=0 ; "${#commandes_a_executer[*]}" - "${i}"; i++)); do
|
||||
${commandes_a_executer["${i}"]}
|
||||
done
|
||||
}
|
||||
|
||||
principale(){
|
||||
# Fonction d'exécution du script de création d'interfaces réseau pour le conteneur en cours.
|
||||
recupParams
|
||||
execCmdIntRzo
|
||||
}
|
||||
|
||||
principale
|
||||
echo "toto $(date)" > /tmp/toto.date
|
||||
|
Loading…
Reference in new issue