#1 Le 06/04/2020, à 16:47
- S+KOH
script shell pour faire une mise à jour complète et un nettoyage
Bonjour à tous,
J'ai écrit un petit script shell pour faire une mise à jour complète et un nettoyage. Je voulais votre avis car je suis très nouveau dans la programmation shell et j'ai glané des informations par-ci par-là pour arriver à mes fins. Le script tourne bien et il m'a permis de découvrir des choses cachées..
#!/bin/sh
clear
echo "\t\033[1;33m SCRIPT DE MAINTENANCE\n\033[0m"
echo "Maintenance complète\t\033[1;32m(1)\033[0m"
echo "Mises à jour\t\t\033[1;32m(2)\033[0m"
echo ""
while read choix
do
clear
echo "\t\033[1;33m SCRIPT DE MAINTENANCE\n\033[0m"
echo "Maintenance complète\t\033[1;32m(1)\033[0m"
echo "Mises à jour\t\t\033[1;32m(2)\033[0m"
echo ""
case $choix in
1) echo "\033[1;32m===MISE A JOUR===\033[0m"
sudo apt update
sudo apt full-upgrade
echo " "
echo "\033[1;32m===AUTO-REMOVE===\033[0m"
sudo apt autoremove
echo " "
echo "\033[1;32m===CLEAN===\033[0m"
sudo apt clean
sudo apt autoclean
echo " "
echo "\033[1;32m===sudo dpkg --configure -a===\033[0m"
sudo dpkg --configure -a
echo " "
echo "\033[1;32m===LOCALE-PURGE===\033[0m"
sudo localepurge
echo "\033[1;32m===PURGE===\033[0m"
sudo apt purge $(COLUMNS=200 dpkg -l | grep "^rc" | tr -s ' ' | cut -d ' ' -f 2)
echo " "
echo "\033[1;32m===NETTOYAGE DES SNAPS===\033[0m"
sudo snap refresh
sudo apt clean && snap list --all | awk 'BEGIN {print "#! /bin/sh\n"} ; /désactivé|disabled/ {print "snap remove "$1" --revision "$3"\n"} ; END {print "exit 0"}' > script && chmod +x script && ./script && rm script && echo && snap list --all && echo && df -Th | grep -Ev "tmpfs|squashfs"
echo ""
echo "\033[1;32m===apt-get install -f===\033[0m"
sudo apt install -f
echo ""
echo "\033[1;32m===CORBEILLE===\033[0m"
echo ""
trash-list
echo ""
echo -n "\033[1;33mSupprimer définitivement les fichiers vieux de plus de (jours): "
read trash
trash-empty $trash
echo "\033[0m"
echo -n "\033[1;33m\tNETTOYAGE TERMINE\n\033[0m"
echo ""
exit 0;;
2) echo "\033[1;32m===VERIFICATION DES MISES A JOUR===\033[0m"
sudo apt update
echo ""
exit 0;;
#*) echo "Ce choix '$choix' n'est pas valable !!!";;
esac
done
Merci d'avance pour les avis que vous pourrez me donner.
S+KOH
"Faites votre travail, puis prenez du recul. C'est la seule voie vers la sérénité." LAO-TSEU
Kubuntu Ubuntu
Script bakup: github
Hors ligne
#2 Le 06/04/2020, à 16:53
- lynn
Re : script shell pour faire une mise à jour complète et un nettoyage
Bonjour,
Merci d'avance pour les avis que vous pourrez me donner.
S+KOH
Il y a des
echo
que tu dois remplacer par des
echo -e
si tu veux que tes balises soient interprétées lors de la lecture de ton script...
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#3 Le 06/04/2020, à 16:59
- Watael
Re : script shell pour faire une mise à jour complète et un nettoyage
salut,
un script d'administration doit être écrit par root, et exécutable par lui uniquement, ou via un unique sudo lors de l'appel du script.
je ne sais pas si toutes les commandes utilisées font partie de l'installation de base d'Ubuntu, sinon ça vaut la peine de vérifier qu'elles sont effectivement installées.
edit: je préfère printf à echo -e
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 06/04/2020, à 17:00
- S+KOH
Re : script shell pour faire une mise à jour complète et un nettoyage
J'avais essayé avec des
echo -e
en effet, puis je me suis rendu compte que ça ne changeait rien, les balises fonctionnent.
"Faites votre travail, puis prenez du recul. C'est la seule voie vers la sérénité." LAO-TSEU
Kubuntu Ubuntu
Script bakup: github
Hors ligne
#5 Le 06/04/2020, à 17:03
- S+KOH
Re : script shell pour faire une mise à jour complète et un nettoyage
je ne sais pas si toutes les commandes utilisées font partie de l'installation de base d'Ubuntu, sinon ça vaut la peine de vérifier qu'elles sont effectivement installées.
edit: je préfère printf à echo -e
Effectivement j'ai utilisé des commandes avec des paquets que j'ai installés. Je crois avoir ajouté localepurge et trash.
Qu'est-ce que change printf à echo ?
Dernière modification par S+KOH (Le 06/04/2020, à 17:07)
"Faites votre travail, puis prenez du recul. C'est la seule voie vers la sérénité." LAO-TSEU
Kubuntu Ubuntu
Script bakup: github
Hors ligne
#6 Le 06/04/2020, à 17:13
- Watael
Re : script shell pour faire une mise à jour complète et un nettoyage
c'est plus propre; la distinction entre le format et les données est plus net.
echo -e '\033[01;31mBLA BLA \033[[01;32mBLA\033[00m'
contre
printf '\033[01;31m%s \033[01;32m%s\033[00m\n' "BLA BLA" "BLA"
le format peut même être défini indépendamment (voire conditionnellement) :
$ fmt='\033[01;31m%s \033[01;32m%s\033[00m\n'
$ printf "$fmt" "BLA BLA" "BLA"
Dernière modification par Watael (Le 06/04/2020, à 17:14)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#7 Le 06/04/2020, à 17:14
- S+KOH
Re : script shell pour faire une mise à jour complète et un nettoyage
D'accord, je comprends mieux. Merci
"Faites votre travail, puis prenez du recul. C'est la seule voie vers la sérénité." LAO-TSEU
Kubuntu Ubuntu
Script bakup: github
Hors ligne
#8 Le 06/04/2020, à 17:56
- S+KOH
Re : script shell pour faire une mise à jour complète et un nettoyage
Pour ce qui est de la maintenance du système ensuite, je ne comprenais pas bien la différence entre clean et autoclean. Mais je viensici de découvrir que clean était bien plus drastique qu'autoclean et que cela peut poser des problèmes.
"Faites votre travail, puis prenez du recul. C'est la seule voie vers la sérénité." LAO-TSEU
Kubuntu Ubuntu
Script bakup: github
Hors ligne