Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

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 12/07/2007, à 17:01

Jean-lux

Aide pour mon script

Bonjour,

Je suis l'auteur de ce script -> http://forum.ubuntu-fr.org/viewtopic.php?id=117039

Voici le script que j'ai maintenant :

#!/bin/bash
# Script créer par Jean-Lux sous licence GPL
# Version 3.0 ALPHA

zenity --info --title='INFOS' --text="Ce script se charge de mettre à jour votre système et de supprimer les fichiers/paquets inutiles, il est recommandé d'exécuter ce script au moins une fois par mois."


## Vérification de la connexion Internet
    ping google.fr -c 3 | zenity --progress --text="Test de la connexion internet en cours..." --pulsate --auto-close
        if [ "${PIPESTATUS[0]}" != "0" ]; then
        zenity --error --text="Une erreur est survenue, veuillez vérifier vos paramètres de connexions, voulez-vous continuer ? Ce script va maintenant s'interrompre." --title="Erreur : Pas de connexion Internet"
        exit
        fi


## Verification des permissions root
# Une mauvaise modification de cette partie risque de détruire le système !
    mkdir "/test-maintenance"
        if [ "${PIPESTATUS[0]}" != "0" ]; then
        zenity --error --text="Impossible d'avoir les droits d'administrateur. J'en ai besoin pour m'éxecuter, veuillez relancez le script avec les permissions root !" --title="Accès refusé"
        exit
        fi
    rm -r "/test-maintenance"


# Afficher l'écran des actions à effectuer
    ACT=`zenity --list --checklist --width=495 --height=316 \
        --title "Sélectionner les opérations à effectuer" \
        --text="Veuillez sélectionnez les opérations à effectuer :" \
        --column="À faire ?" --column="Description" \
        TRUE    $"Mettre à jour les dépôts" \
        TRUE    $"Mettre à jour les paquets/logiciels installés" \
        TRUE    $"Supprimer complètement les paquets/logiciels inutiles" \
        TRUE    $"Supprimer TOUS les fichiers inutiles du cache d'APT" \
	TRUE    $"Vider la corbeille" \
        FALSE    $"Mettre à jour de l'index des périphériques" \
        FALSE    $"Vérifier les dépendances" \
	FALSE	$"Vérifier le disque dur au prochain démarrage de l'ordinateur"`
    if [ "${PIPESTATUS[0]}" != "0" ]; then
    exit
    fi


# Exécution des opérations demandés
    if echo "$ACT" | grep $"Mettre à jour les dépôts"; then
    apt-get update | zenity --progress --text="Mise à jour des dépôts..." --pulsate --auto-close
        if [ "${PIPESTATUS[0]}" != "0" ]; then
        zenity --error --text="Une erreur est survenue lors de la mise à jour des dépots, veuillez regarder le terminal de ce script pour + d'infos" --title="Erreur"
        fi
    
    fi
    if echo "$ACT" | grep $"Mettre à jour les paquets/logiciels installés"; then
    apt-get dselect-upgrade -y --force-yes | zenity --progress --text="Mise à jour des paquets installés..." --pulsate --auto-close
        if [ "${PIPESTATUS[0]}" != "0" ]; then
        zenity --error --text="Une erreur est survenue lors de la mise à jour des paquets, veuillez regardez le terminal de ce script pour + d'infos" --title="Erreur"
        fi
 
    fi
    if echo "$ACT" | grep $"Vérifier les dépendances"; then
    apt-get check -y --force-yes | zenity --progress --text="Vérification des dépendances..." --pulsate --auto-close
        if [ "${PIPESTATUS[0]}" != "0" ]; then
        zenity --error --text="Une erreur est survenue lors de la vérification des dépendances des paquets, veuillez regardez le terminal de ce script pour + d'infos" --title="Erreur"
        fi

    fi
    if echo "$ACT" | grep $"Supprimer complètement les paquets/logiciels inutiles"; then
    apt-get autoremove --purge -y --force-yes| zenity --progress --text="Suppression complète des paquets inutiles..." --pulsate --auto-close
        if [ "${PIPESTATUS[0]}" != "0" ]; then
        zenity --error --text="Une erreur est survenue lors de la suppression complète des paquets inutiles, veuillez regardez le terminal de ce script pour + d'infos" --title="Erreur"
        fi

    fi
    if echo "$ACT" | grep $"Supprimer TOUS les fichiers inutiles du cache d'APT" ; then
    apt-get clean | zenity --progress --text="Suppression de TOUS LES FICHIERS TÉLÉCHARGÉS du cache d'APT..." --pulsate --auto-close
        if [ "${PIPESTATUS[0]}" != "0" ]; then
        zenity --error --text="Une erreur est survenue lors de la suppression des fichiers inutiles du cache d'APT, veuillez regardez le terminal de ce script pour + d'infos" --title="Erreur"
        fi

    fi
    if echo "$ACT" | grep $"Vider la corbeille"; then
    rm -r "$HOME/.Trash" --force | zenity --progress --text="Vidage de la corbeille..." --pulsate --auto-close
	if [ "${PIPESTATUS[0]}" != "0" ]; then
        zenity --error --text="Une erreur est survenue lors du vidage de la corbeille, veuillez regardez le terminal de ce script pour + d'infos" --title="Erreur"
	fi
    fi

if echo "$ACT" | grep $"Mettre à jour de l'index des périphériques"; then
    update-pciids 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Vitesse du téléchargement = \2/' | zenity --progress --text="Mise à jour de l'index des périphériques..." --auto-close        
        if [ "${PIPESTATUS[0]}" != "0" ]; then
        zenity --error --text="Une erreur est survenue lors de la 1ère phase de la mise à jour de l'index des périphériques, veuillez regardez le terminal de ce script pour + d'infos" --title="Erreur"
        fi
    fi

if echo "$ACT" | grep $"Mettre à jour de l'index des périphériques"; then
    update-usbids 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Vitesse du téléchargement = \2/' | zenity --progress --text="Mise à jour de l'index des périphériques..." --auto-close        
        if [ "${PIPESTATUS[0]}" != "0" ]; then
        zenity --error --text="Une erreur est survenue lors de la 2ème phase de la mise à jour de l'index des périphériques, veuillez regardez le terminal de ce script pour + d'infos" --title="Erreur"
        fi
    fi

if echo "$ACT" | grep $"Vérifier le disque dur au prochain démarrage de l'ordinateur"; then
    cd /
    touch /forcefsck
        if [ "${PIPESTATUS[0]}" != "0" ]; then
        zenity --error --text="Une erreur est survenue lors de la mise en place de la vérification du disque au prochain démarrage, veuillez regardez le terminal de ce script pour + d'infos" --title="Erreur"
        fi
    zenity --info --text="Vous avez planifié une vérification du système de fichier, cette vérification s'exécutera au prochain démarrage d'Ubuntu !" --title="Vérification du système de fichier"
    fi


## FIN
    zenity --info --title="J'ai fini !" --text="J'ai terminé d'effectuer les opérations demandées ! PS: Parfois, après une mise à jour du système, il est nécessaire de redémarrer."

    zenity --info --title="À propos" --text="Ce script a été créé par Jean-Lux sous licence GPL. Merci de votre soutien"

Mais j'ai besoin de vos aides pour m'aider à résoudre ces problèmes :


- Lorsque que je clic sur le bouton "Annuler" d'une opération en cours, la fenêtre pars, mais l'action continue en arrière plan.


- Pourquoi lorsque que l'on sélectionne "Vider la corbeille", il ne vide pas la corbeille ? J'ai testé la commande pour vider la corbeille dan un terminal, et elle fonctionne ! Mais pas dans le script

Je crois que c'est parce que le script s'exécute en root, donc il vide la corbeille qui se trouve dans /root/.Trash

- Comment faire pour que le script s'auto déclare avoir besoin des droits de root, et de demander le mot de passe avec gksu, gksudo ?


- Comment créer un fichier journal dans ~/maintenance.log ($HOME/.maintenance.log) ?

J'ai essayé :

apt-get update >> $HOME/.maintenance.log | zenity --progress --text="Mise à jour des dépôts..." --pulsate --auto-close

cela fonctionne, mais empêche l'affichage de zenity

Merci de m'aider

Dernière modification par Jean-lux (Le 12/07/2007, à 17:02)


Un jour... Le manchot cassera la fenêtre !

Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.

Hors ligne

#2 Le 12/07/2007, à 17:34

coca25

Re : Aide pour mon script

bonjour,

je sais pas comment tu lances ton script, mais si c'est avec sudo:

sudo ./tonscript

le $HOME est bien défini
dans une icone, tu peux rajouter "gksu" avant la commande.

pour l'annulation et la redirection, un premier jet, à toi de me dire si ca te convient:

#!/bin/bash


function lance_p ()
{
  nom_process=$1
  shift
  $nom_process $* &
  while pidof $nom_process > /dev/null
  do
    echo .
  done 
  echo 100
}

lance_p sleep 10 | zenity --progress --text="Attente sleep..." --pulsate --auto-close
if pidof sleep > /dev/null
then
  echo Arret brutal 
  kill `pidof sleep`
else
  echo Arret tout seul
fi

Dernière modification par coca25 (Le 12/07/2007, à 17:41)

Hors ligne

#3 Le 17/07/2007, à 22:06

Jean-lux

Re : Aide pour mon script

...


Un jour... Le manchot cassera la fenêtre !

Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.

Hors ligne

#4 Le 18/07/2007, à 01:00

coca25

Re : Aide pour mon script

??

Hors ligne