Pages : 1
#1 Le 12/07/2007, à 16: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, à 16: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, à 16: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, à 16:41)
Hors ligne
#3 Le 17/07/2007, à 21: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, à 00:00
- coca25
Re : Aide pour mon script
??
Hors ligne
Pages : 1