Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/04/2020, à 17: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, à 17:53

lynn

Re : script shell pour faire une mise à jour complète et un nettoyage

Bonjour,

S+KOH a écrit :

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... wink


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#3 Le 06/04/2020, à 17: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, à 18: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, à 18:03

S+KOH

Re : script shell pour faire une mise à jour complète et un nettoyage

Watael a écrit :

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, à 18: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, à 18: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, à 18:14)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#7 Le 06/04/2020, à 18: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, à 18: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