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 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"
:
capturepropritsdemaintefy9.png

Puis double-clic sur le fichier puis choisi "Lancer" ou "Lancer dans un terminal"

capturenautilusuj9.png

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

dwan a écrit :

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

neutral
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 :

Jean-lux a écrit :

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

roger64 a écrit :

bonjour Jean Lux

Si tu tentais ta chance au forum "developpement - programmation"?

C'est déja fait, mais aucune réponse sad


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.

captureerreurhx7.png

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

dwan a écrit :

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 :

captureerreurba0.png

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

C'est déjà mieux, on voit le rm : lol
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