Bonjour René! Je viens de jeter un coup d'oeil sur la page: > http://doc.ubuntu-fr.org/points_de_restauration_pour_un_systeme_linux#script
Il y a un détail qui m'accroche... c'est la commande pour rendre le script "exécutable". Je me permets une petite digression :) La page dit : sudo chmod -R +rwx PointDeRestauration.sh Ceci n'est pas trop efficace. D'abord, la commande sudo ne serait nécessaire que si le fichier PointDeRestauration.sh ne pouvait être altéré que par le super-utilisateur (root). C'est le cas de la plupart des fichiers installés sur le système, mais puisqu'on vient de créer ce fichier à la main, on dispose certainement des permissions pour le modifier. Bye bye sudo. Ce qui nous amène à : chmod -R +rwx PointDeRestauration.sh Mais qu'est-ce que ces chmod, R, rwx et autres codes secrets? :) "chmod" sert à modifier certaines informations à propos d'un fichier ou d'un répertoire -- les droits d'accès, et certaines fonctionnalités comme "exécutable". "-R" modifie la commande pour la rendre récursive. Autrement dit, si on l'applique sur un répertoire, la commande modifie le répertoire lui-même puis poursuit sur sa lancée en modifiant tous les fichiers et sous-répertoires inclus. Finalement, "+rwx" sont les codes correspondant aux informations à modifier. Dans le cas présent, on ajoute (+), les permissions de lecture (r), d'écriture (w), puis le mode "exécutable" (x). Ici, l'ajout du droit à la lecture et à l'écriture (pour tous les utilisateurs) ne nous intéresse pas vraiment. Puisqu'on ne veut modifier qu'un seul fichier, on vire le "-R". Comme ça on risque moins de faire des dégâts qui se propagent (ce qui peut être particulièrement grave si on a utilisé "sudo"!) En final (ouf!) : chmod +w PointDeRestauration.sh Pour ce qui est du script, ça fonctionne bien ! Je pense l'utiliser sur un serveur... Des détails, des détails... :) Ligne 5, pour déterminer si le répertoire existe, je préfère toujours le demander explicitement à bash (voir "man test" pour les détails) plutôt que de tenter de provoquer un code d'erreur : if [ -d ~/PointDeRestauration ] Un autre façon de faire serait de carrément éliminer la vérification et demander à mkdir de s'en charger : mkdir -p ~/PointDeRestauration Le nom 2010-04-12, c'est plus facile à saisir pour mon vieux neurone que 100412. On peut ajouter la vérification de la commande dpkg pour des points bonis : 1) point=$(date +%F) if dpkg --get-selections > ~/PointDeRestauration/$point; then echo "Le point de restauration « $point » a est créé." else echo "La création du point de restauration a échoué." fi ;; Entre les lignes 28 et 29, j'ajouterais une vérification que l'utilisateur a tapé le nom d'un point de vérification correctement (et donner de l'aide sinon). J'ai tapé le chemin complet d'un point de restauration (puisque c'est cela que le script m'a donné comme info et qu'autrement je ne sais pas lire les instructions) et j'ai reçu une erreur pas jolie comme quoi le fichier n'existait pas. Ci-dessous, le "cd" nous permet de lister que le nom des points de restauration plutôt que d'obtenir le leur chemin complet. 2) echo "Quel point de restauration souhaitez-vous utiliser ?" echo cd ~/PointDeRestauration; ls read point if [ -f ~/PointDeRestauration/$point ]; then sudo dpkg --clear-selections if sudo dpkg --set-selections < ~/PointDeRestauration/$point; then echo "Votre système a été restauré au point « $point »." else echo "La restauration a échoué." fi else echo "La date de restauration « $point » n'est pas disponible." fi ;; Pour d'autres points bonis :) On remarque que "~/PointDeRestauration/" est recopié 5 ou 6 fois dans le script. On pourrait ajouter une variable en tête du script qui contiendrait le nom du répertoire, puis utiliser cette variable dans le code. Si on décide de changer l'endroit où sont enregistrés les points (je pense à quelque chose comme /var/...), ce serait vraiment plus facile à faire. (Est-ce que ça parait trop que je pratique pour le LPIC-1 ? :) -- Philippe Gauthier <philippe.gauth...@deuxpi.ca> http://www.deuxpi.ca/ -- Ubuntu-quebec mailing list Ubuntu-quebec@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-quebec