Pages : 1
#1 Le 05/05/2007, à 11:09
- Jean-lux
[Help] Pour l'élaboration d'un script shell
Bonjours,
Je voudrais créer un script pour "Maintenir le système"
voici le début de mon script
#!/bin/bash
## Script créer par Jean-Lux
## Mise à jours des paquets d'APT
sudo apt-get update -y -qq
# Mise à jours du système
sudo apt-get upgrade -y -qq
## Suppression des paquets inutiles
sudo apt-get autoremove --purge -y -qq
## Suppression des paquets téléchargés inutiles
sudo apt-get autoclean -y -qq && sudo apt-get clean -y -qq
exit
Mais je voudrais ajouter un texte <entre les crochets> qui s'affiche en 1er plan pour montrer ce qui se passe en derrière.
#!/bin/bash
## Script créer par Jean-Lux
## Mise à jours des paquets d'APT
<Mise à jours du système>
sudo apt-get update -y -qq
# Mise à jours du système
sudo apt-get upgrade -y -qq
<Suppresion des fichiers d'APT inutiles>
## Suppression des paquets inutiles
sudo apt-get autoremove --purge -y -qq
## Suppression des paquets téléchargés inutiles
sudo apt-get autoclean -y -qq && sudo apt-get clean -y -qq
<FIN>
exit
Est-il possible de faire un interface graphique simple en GTK pour montrer ce qui se passe (j'ai entendu parler de zenety pour ce genre de chose) ?
PS.: Je suis qu'un débutant
Merci de votre aide.
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#2 Le 05/05/2007, à 11:39
- i M@N
Re : [Help] Pour l'élaboration d'un script shell
Hello.
il s'agit de zenity.
Pour plus d'infos :
man zenity
@+...
1 x Intel(R) Core i7 2600K CPU 3.4GHz Debian sid = roxX !
1 x MSi Wind U100 Debian sid = roxX !!
Read The F***in' Manual or die tryin' !
webmaster @ http://www.rastavibes.net reggae shop
Hors ligne
#3 Le 05/05/2007, à 13:47
- Jean-lux
Re : [Help] Pour l'élaboration d'un script shell
J'ai terminé mon script, il est désormais opérationnel, Merci de vos aides.
Pour le télécharger, c'est ici -> http://www.megaupload.com/?d=GTJBVCMQ , pour l'utiliser :
Il faut l'autoriser à s'exécuter comme un programme, cochez la case "Autoriser l'execution du fichier comme un programme"
:
Puis double-clic sur le fichier puis choisi "Lancer" ou "Lancer dans un terminal"
Dernière modification par Jean-lux (Le 05/05/2007, à 13:48)
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#4 Le 05/05/2007, à 13:55
- Jean-lux
Re : [Help] Pour l'élaboration d'un script shell
ben alors voilà :
#!/bin/bash
## Script créer par Jean-Lux
zenity --info --title='INFOS' --text="Ce script se charge de mettre à jours votre système et de supprimer des fichiers/paquets inutiles, il est recommander d'exécuter ce script au moins une fois par moi ."
echo "Ce script se charge de mettre à jours votre système et de supprimer des fichiers/paquets inutiles, il est recommander d'exécuter ce script au moins une fois par moi ."
gksudo -t "Maintenance" "./Maintenance du système" --message "J'ai besoin de votre mot de passe pour agir sur le système, veuillez-me le donner svp (c'est le mot de passe de votre session d'habitude)."
zenity --info --title='Mise à jours' --text="Je vais mettre à jours des dépôts et du système..."
echo "Mise à jours des dépôts et du système..."
## Mise à jours des paquets d'APT
sudo apt-get update -y -qq
# Mise à jours du système
sudo apt-get upgrade -y -qq
zenity --info --title='Fichiers inutiles' --text="Je vais supprimer les fichiers inutiles d'APT..."
echo "Suppression des fichiers inutiles d'APT..."
## Suppression des paquets inutiles
sudo apt-get autoremove --purge -y -qq
## Suppression des paquets inutiles téléchargés
sudo apt-get autoclean -y -qq && sudo apt-get clean -y -qq
## Mise à jours de l'index de vos périphériques
zenity --info --title="Mise à jour de l'index des périphériques" --text="Je vais mettre à jours l'index de vos périphérique !"
echo "Mise à jours de l'index de vos périphériques..."
sudo update-pciids && sudo update-usbids
zenity --info --title='FIN des opérations' --text='Toutes les opérations sont terminé !'
echo 'Toutes les opérations sont terminé !'
zenity --info --title='À propos' --text='Ce script a été créer par Jean-Lux sous licence GNU, merci.'
echo 'Ce script a été créer par Jean-Lux sous licence GNU, merci.'
exit
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#5 Le 08/05/2007, à 12:54
- Jean-lux
Re : [Help] Pour l'élaboration d'un script shell
J'ai encore besoin de votre aide : Comment "renvoyer" les erreurs qui apparaissent dans le terminal dans l'interface graphique ?
Exemple : Le terminal affiche :
E: Impossible de verrouiller /var/lib/apt/lists/lock - open (11 Ressource temporairement non disponible)
E: Impossible de verrouiller le répertoire de liste
Donc, je voudrais que zenity affiche un message d'erreur dans lequel y'aura écrit :
"E: Impossible de verrouiller le répertoire de liste", veuillez-vous assurer qu'aucune application utilisant apt ne soit en cours d'exécution (Synaptic, apt-get, aptitude, adept etc...)
Merci de votre aide
Dernière modification par Jean-lux (Le 08/05/2007, à 13:05)
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#6 Le 08/05/2007, à 13:13
- dwan
Re : [Help] Pour l'élaboration d'un script shell
les fonctions retournent toutes une valeur d'état dans la variable
$?
. je pense qu'en testant cette valeur après ta fonction (valeur de $? ==11 => afficher l'erreur correspondante), ça devrait marcher.
Auto-hébergé !
HP dv6164ea
Hors ligne
#7 Le 08/05/2007, à 13:19
- Jean-lux
Re : [Help] Pour l'élaboration d'un script shell
???
Tu peux mieux expliquer, ou me montrer un exemple de script qui à cette fonction ?
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#8 Le 08/05/2007, à 13:28
- dwan
Re : [Help] Pour l'élaboration d'un script shell
petit exemple :
apt-get faire des trucs
case $? in
0)
echo "Opération apt-get réussie"
;;
11)
echo "E: Impossible de verrouiller le répertoire de liste", veuillez-vous assurer qu'aucune application utilisant apt ne soit en cours d'exécution (Synaptic, apt-get, aptitude, adept etc...)"
;;
*)
echo "E:état de sortie apt-get $?"
;;
esac
Après la commande apt-get, on récupère l'état de sortie dans la variable $?. On la teste : si elle vaut 0, tout s'est bien passé; si elle vaut 11, on affiche le message d'erreur; l'étoile sert à indiquer les autres cas. Cela dit, je pense qu'il y a moyen de récupérer directement le message d'erreur, mais je n'en sais pas plus.
Auto-hébergé !
HP dv6164ea
Hors ligne
#9 Le 08/05/2007, à 13:40
- Jean-lux
Re : [Help] Pour l'élaboration d'un script shell
petit exemple :
apt-get faire des trucs case $? in 0) echo "Opération apt-get réussie" ;; 11) echo "E: Impossible de verrouiller le répertoire de liste", veuillez-vous assurer qu'aucune application utilisant apt ne soit en cours d'exécution (Synaptic, apt-get, aptitude, adept etc...)" ;; *) echo "E:état de sortie apt-get $?" ;; esac
Après la commande apt-get, on récupère l'état de sortie dans la variable $?. On la teste : si elle vaut 0, tout s'est bien passé; si elle vaut 11, on affiche le message d'erreur; l'étoile sert à indiquer les autres cas. Cela dit, je pense qu'il y a moyen de récupérer directement le message d'erreur, mais je n'en sais pas plus.
J'ai essayé avec
sudo apt-get update
case $? in
11)
zenity --error --text="'E: Impossible de verrouiller le répertoire de liste', veuillez-vous assurer qu'aucune application utilisant apt ne soit en cours d'exécution (Synaptic, apt-get, aptitude, adept etc...)"
;;
Mais le terminal m'affiche
E: Impossible de verrouiller /var/lib/apt/lists/lock - open (11 Ressource temporairement non disponible)
E: Impossible de verrouiller le répertoire de liste
/home/jean-luc/Desktop/nouveau fichier: line 6: erreur de syntaxe : fin de fichier inattendue
Merci de ton aide.
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#10 Le 08/05/2007, à 14:07
- dwan
Re : [Help] Pour l'élaboration d'un script shell
Quand tu commences un "case", il faut le fermer avec "esac".
Auto-hébergé !
HP dv6164ea
Hors ligne
#11 Le 08/05/2007, à 16:33
- Jean-lux
Re : [Help] Pour l'élaboration d'un script shell
Cela ne fonctionne pas :
sudo apt-get update
case $? in
11)
zenity --error --text="'E: Impossible de verrouiller le répertoire de liste', veuillez-vous assurer qu'aucune application utilisant apt ne soit en cours d'exécution (Synaptic, apt-get, aptitude, adept etc...)"
;;
esac
le terminal répond :
jean-luc@Salon:~$ '/home/jean-luc/Desktop/essaie.sh'
E: Impossible de verrouiller /var/lib/apt/lists/lock - open (11 Ressource temporairement non disponible)
E: Impossible de verrouiller le répertoire de liste
jean-luc@Salon:~$
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#12 Le 08/05/2007, à 16:46
- dwan
Re : [Help] Pour l'élaboration d'un script shell
Dommage. Il faudrait être sûr nombre que renvoie apt-get dans le cas de cette erreur.
Auto-hébergé !
HP dv6164ea
Hors ligne
#13 Le 08/05/2007, à 16:48
- Jean-lux
Re : [Help] Pour l'élaboration d'un script shell
C'est 11 :
Cela ne fonctionne pas :
sudo apt-get update case $? in 11) zenity --error --text="'E: Impossible de verrouiller le répertoire de liste', veuillez-vous assurer qu'aucune application utilisant apt ne soit en cours d'exécution (Synaptic, apt-get, aptitude, adept etc...)" ;; esac
le terminal répond :
jean-luc@Salon:~$ '/home/jean-luc/Desktop/essaie.sh' E: Impossible de verrouiller /var/lib/apt/lists/lock - open (11 Ressource temporairement non disponible) E: Impossible de verrouiller le répertoire de liste jean-luc@Salon:~$
Dernière modification par Jean-lux (Le 08/05/2007, à 16:54)
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#14 Le 08/05/2007, à 16:57
- Jean-lux
Re : [Help] Pour l'élaboration d'un script shell
ah, c'est bon j'avait mal compris.
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#15 Le 08/05/2007, à 17:06
- roger64
Re : [Help] Pour l'élaboration d'un script shell
bonjour Jean Lux
Si tu tentais ta chance au forum "developpement - programmation"?
Hors ligne
#16 Le 08/05/2007, à 17:12
- Jean-lux
Re : [Help] Pour l'élaboration d'un script shell
bonjour Jean Lux
Si tu tentais ta chance au forum "developpement - programmation"?
C'est déja fait, mais aucune réponse
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#17 Le 09/05/2007, à 14:55
- kuri
Re : [Help] Pour l'élaboration d'un script shell
et pourquoi pas tout simplement :
ta commande 2> temp.txt
texte=`cat temp.txt`
zenity --error --text=$texte
Hors ligne
#18 Le 11/05/2007, à 19:42
- Jean-lux
Re : [Help] Pour l'élaboration d'un script shell
J'ai fait ton script, mais y'a un problème :
Voila le script que j'ai taper :
sudo rm '/home/jean-luc/Desktop/fdfsdf' 2> maintenance.log
texte=`cat maintenance.log`
zenity --error --text=$maitenance
Mais quand j'exécute le script, zenity m'affiche une boite d'erreur sans aucun texte.
Pourtant, il y'a quelque chose dans le fichier maintenance.log qui se trouve dans mon home :
rm: ne peut enlever `/home/jean-luc/Desktop/fdfsdf': Aucun fichier ou répertoire de ce type
Merci de m'aider à résoudre ce problème.
Dernière modification par Jean-lux (Le 11/05/2007, à 19:43)
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#19 Le 12/05/2007, à 10:42
- dwan
Re : [Help] Pour l'élaboration d'un script shell
essaie ça :
sudo rm '/home/jean-luc/Desktop/fdfsdf' 2> maintenance.log
maintenance=`cat maintenance.log`
zenity --error --text=$maintenance
tu vois où est l'erreur?
Auto-hébergé !
HP dv6164ea
Hors ligne
#20 Le 12/05/2007, à 10:48
- Jean-lux
Re : [Help] Pour l'élaboration d'un script shell
essaie ça :
sudo rm '/home/jean-luc/Desktop/fdfsdf' 2> maintenance.log maintenance=`cat maintenance.log` zenity --error --text=$maintenance
tu vois où est l'erreur?
Il ne fonctionne pas non plus ton code.
La fenêtre d'erreur de zenity :
Le fichier maintenance.log :
rm: ne peut enlever `/home/jean-luc/Desktop/fdfsdf': Aucun fichier ou répertoire de ce type
Dernière modification par Jean-lux (Le 12/05/2007, à 10:48)
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#21 Le 12/05/2007, à 11:00
- dwan
Re : [Help] Pour l'élaboration d'un script shell
En fait, je ne l'ai même pas essayé, mais c'était pour te montrer une chose : dans la dernière ligne, tu appelais la variable $maintenance, alors que tu ne lui avait donné aucune valeur, puisque c'est à la variable 'texte' que tu attribuais 'cat maintenance.log'.
sudo rm '/home/jean-luc/Desktop/fdfsdf' 2> maintenance.log
maintenance=`cat maintenance.log`
zenity --error --text=$maintenance
La fenêtre d'erreur de zenity :
C'est déjà mieux, on voit le rm :
Ne reste plus qu'à trouver la bonne méthode pour passer les messages d'erreur...
Auto-hébergé !
HP dv6164ea
Hors ligne
#22 Le 15/06/2007, à 11:48
- Doyen
Re : [Help] Pour l'élaboration d'un script shell
Salut,
j'ai trouvé la solution a ton probleme :
sudo rm '/home/jean-luc/Desktop/fdfsdf' 2> maintenance.log
zenity --error --text="$(cat maintenance.log)"
Met bien a jour ton script car c'est du beau boulot ... et aussi, prends les corrections orthographiques qu'on met car c'est super dérangeant d'avoir un script bourré de fautes...
++
Doyen
Dernière modification par Doyen (Le 15/06/2007, à 11:49)
Linux a un noyau, Windows a un pépin
Des chercheurs ont reussi a implanter des dents sur des poules, donc on ne peut plus dire quand les poules auront des dents, a la place, utilisont quand Microsoft n'aura plus de bugs. Ca au moins, c'est pas pret d'arriver !
Hors ligne
#23 Le 14/06/2008, à 16:40
- Alejandro
Re : [Help] Pour l'élaboration d'un script shell
Salut j'ai pris ton scripte en pensant qu'il y avait une interface or chez moi il n'y a rien .. tout semble tourner en arrière-plan sans que je ne sache rien.... et j'aime pas ca ...
Alors je voudrais savoir s'il effectevement il n'y a pas d'interface ou il y en a pas chez moi suite a une mauvaise manip...
Merci d'avance
Alejandro
Newbie sur linux, Hardy Heron, AMD 64 3000+, Asus SLI, Nforce 6600GT... (et un M$ qui traine... )
Hors ligne
Pages : 1