Re: Modifier le comportement d'autoremove concernant les noyaux
Posté : ven. 29 nov. 2024 10:29
Dernier message de la page précédente :
@Armaggion :Je pensais au résultat de toutes les commandes du script. Mais le résultat je l'ai déjà avec mes fichiers tmp1.sh et tmp2.sh et aussi avec apt-mark showhold avant et après l'exécution d'autoremove. Ce que j'écrivais dans mon précédant post.Ecris un petit exemple du résultat attendu afin qu'on comprenne ce dont tu parles
@cyrille :
Je n'avais pas pensé à ça. Mais je dirais que si le serveur apt est inaccessible, je n'aurais pas pu faire les mises à jour, donc je n'aurais pas pu voir si un nouveau noyau est sorti, donc je ne lancerais pas mon script.Exemple simple, que deviens ton script si lancé et que le serveur apt n'est accessible ?
Je sais, ils ne sont pas destinés à être gardés éternellement. Et si je redémarre, ils sont effacés aussi vu qu'ils sont dans /tmp/. C'est juste au cas où je voulais les garder entre deux utilisations du script.Si tu relances ton script, même si gardé, ces fichiers seront effacés (entrée est > , donc effacera le fichier et en gégérera un nouveau)
@Armaggion et @cyrille :
Une question me taraude l'esprit. Que loggeriez-vous si c'était votre script ?
Et voici la nouvelle version de mon script (ajouts : choix du nombre de noyaux à garder et apt-mark showhold avant et après l'exécution d'autoremove) :
Code : Tout sélectionner
#!/bin/bash
if [ "$EUID" -ne 0 ]
then
echo "Lancer ce script en mode administrateur."
exit
fi
PREFIX=/tmp/
echo -e "\nEntrer le nombre de noyaux generic à garder :"
read a
b=$(($a + 1))
echo -e "\nEntrer le nombre de noyaux lowlatency à garder :"
read c
d=$(($c + 1))
dpkg -l | grep 'linux-image-[0-9]' | grep generic | cut -d ' ' -f 3 | sort -V -r > ${PREFIX}tmp1.sh
dpkg -l | grep 'linux-image-[0-9]' | grep lowlatency | cut -d ' ' -f 3 | sort -V -r > ${PREFIX}tmp2.sh
sed -i -e '1,'"$a"'s/^/apt-mark hold /' ${PREFIX}tmp1.sh
sed -i -e "$b"',$s/^/apt-mark unhold /' ${PREFIX}tmp1.sh
sed -i -e '1,'"$c"'s/^/apt-mark hold /' ${PREFIX}tmp2.sh
sed -i -e "$d"',$s/^/apt-mark unhold /' ${PREFIX}tmp2.sh
sed -i '1i \#!/bin/bash' ${PREFIX}tmp1.sh ${PREFIX}tmp2.sh
chmod 755 ${PREFIX}tmp1.sh ${PREFIX}tmp2.sh
echo -e "\ncontenu de tmp1.sh :\n********************\n"
cat ${PREFIX}tmp1.sh
echo -e "\ncontenu de tmp2.sh :\n********************\n"
cat ${PREFIX}tmp2.sh
menu()
{
echo -e "\n***************************************************"
echo "***************************************************"
echo "*** Exécuter et effacer tmp1.sh et tmp2.sh : 1 ***"
echo "*** Exécuter et garder tmp1.sh et tmp2.sh : 2 ***"
echo "*** Quitter et effacer tmp1.sh et tmp2.sh : 3 ***"
echo "*** Quitter et garder tmp1.sh et tmp2.sh : 4 ***"
echo "***************************************************"
echo -e "***************************************************\n"
read menu
case $menu in
1)
${PREFIX}tmp1.sh
${PREFIX}tmp2.sh
rm ${PREFIX}tmp1.sh ${PREFIX}tmp2.sh
;;
2)
${PREFIX}tmp1.sh
${PREFIX}tmp2.sh
echo -e "\nLes fichiers tmp1.sh et tmp2.sh sont dans le dossier ${PREFIX}.\n"
;;
3)
rm ${PREFIX}tmp1.sh ${PREFIX}tmp2.sh
;;
4)
echo -e "\nLes fichiers tmp1.sh et tmp2.sh sont dans le dossier ${PREFIX}.\n"
;;
*)
echo -e "\nChoix inexistant. Veuillez recommencer.\n"
menu
;;
esac
}
menu
echo -e "\nretour de apt-mark showhold :\n*****************************\n"
apt-mark showhold
menu2()
{
echo -e "\n********************************"
echo "********************************"
echo "*** Exécuter autoremove : 1 ***"
echo "*** Quitter : 2 ***"
echo "********************************"
echo -e "********************************\n"
read menu2
case $menu2 in
1)
apt-get autoremove
echo -e "\nretour de apt-mark showhold :\n*****************************\n"
apt-mark showhold
exit
;;
2)
exit
;;
*)
echo -e "\nChoix inexistant. Veuillez recommencer.\n"
menu2
;;
esac
}
menu2