IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Mon script s'arrête tout seul


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant E-Learning
    Inscrit en
    Août 2022
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant E-Learning

    Informations forums :
    Inscription : Août 2022
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Mon script s'arrête tout seul
    Bonjour,

    Je dois exécuter plusieurs sed et des un cat >> via une boucle sur 2 000 fichiers.
    Cependant au bout de 800 fichiers la boucle s'arrête :/ : les 700 premiers fichiers sont bien traités mais les 100 suivants sont en fait 100 fichiers parmi les 1 300 autres.

    Est ce que vous savez pourquoi ?? Est-ce que les scripts on un temps limité ?


    Il m'arrive aussi des fois le message "Segmentation fault (core dumped)" sur un script très long.

    Cordialement

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 695
    Points : 30 993
    Points
    30 993
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Amaury77 Voir le message
    Est ce que vous savez pourquoi ??
    Sans que tu nous montres le script en question...

    Citation Envoyé par Amaury77 Voir le message
    Est-ce que les scripts on un temps limité ?
    Non. Maintenant on peut imaginer que le script, à force de créer des fichiers (peut-être dans "/tmp") finit par saturer le filesystem...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 249
    Points : 13 472
    Points
    13 472
    Par défaut
    Bonjour

    N'est-ce pas une boucle en forme de for fichier in $(ls *), et qui s'est fait prendre par les limitations ? On déplore ce genre de mauvais code sur le forum constamment. Mais les internautes persistent car "ça marche".

    Il faut considérer un fichier, avec 1 ligne par cible.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Consultant E-Learning
    Inscrit en
    Août 2022
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant E-Learning

    Informations forums :
    Inscription : Août 2022
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Oui tout à fait c'est une simple boucle for avec un ls -v, je ne peux pas envoyer les fichiers car le messages serait trop long, est ce que tu aurait un exemple de structure avec : un fichier, avec 1 ligne par cible.

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 249
    Points : 13 472
    Points
    13 472
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while read ligne
    do
            echo "macommande $ligne"
    done < fichier.txt
    Sachant qu'en bash, le fichier.txt peut être remplacé par une substitution de processus <( ).
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 695
    Points : 30 993
    Points
    30 993
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    N'est-ce pas une boucle en forme de for fichier in $(ls *), et qui s'est fait prendre par les limitations ? On déplore ce genre de mauvais code sur le forum constamment. Mais les internautes persistent car "ça marche".
    C'est vrai que ce n'est pas super propre (si le dossier contient des sous-dossiers alors le ls * va exploser en étoile et je suis étonné de ne pas encore avoir vu N_BaH arriver en piqué diagonal venir expliquer qu'on ne met pas de "ls" dans un script) mais je n'ai pas réussi à reproduire cette limitation.
    J'ai en effet créé 50000 fichiers for f in $(seq 50000); do touch "fic_$f"; done j'ai parfaitement pu les récupérer => for f in $(ls); do echo "$f"; done |wc => 50000

    Citation Envoyé par Amaury77 Voir le message
    je ne peux pas envoyer les fichiers car le messages serait trop long
    Ton script est si long que ça ??? Généralement ça traduit une mauvaise conception.
    Mais même avec un script super long, tu n'es pas capable de poster juste la structure de boucle avec un traitement minimal, exemple
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for fic in $(ls -v); do
    	echo "$fic"
    done
    Enfin bon, vu que tu as dit ce que tu faisais, ça ne doit pas être bien différent de ce que je viens d'écrire.

    Donc comme un certain modérateur te le dira s'il vient à passer par là, on ne fait pas de "ls" dans un script. Parce que "ls" interprète certains caractères et qu'un fichier nommé par exemple mon'$'\n''fait'$'\n''chier ne pourra pas être pris en compte (c'est lui qui m'a défié de traiter ce fichier via "ls" et je n'y suis toujours pas arrivé).

    Tu veux traiter des fichiers dans un dossier: for f in *; do echo "[$f]"; done.
    Tu veux traiter des fichiers dans une arborescence: while read f; do echo "[$f]"; done < <(find dossier_racine_arborescence -type f)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 559
    Points : 19 399
    Points
    19 399
    Par défaut
    en général, le problème n'est pas le nombre d'arguments, mais le nombre de caractères d'une ligne de commande (ARG_MAX), mais il me semble me souvenir que le message serait différent, et explicite.
    le segfault peut venir d'un fichier non trouvé, et de données non reçues...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while read -d ''; do echo "$REPLY"; done < <(find "$chemin" -type f -print0 | sort -zV)
    -print0 sinon la boucle ne lira que mon$'\n', et pas mon$'\n'fait$'\n'chier.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Consultant E-Learning
    Inscrit en
    Août 2022
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant E-Learning

    Informations forums :
    Inscription : Août 2022
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Tu veux traiter des fichiers dans un dossier: for f in *; do echo "[$f]"; done.
    C'est cela, mais les derniers fichiers ne sont pas bien traité voir sauter car issu d'un ls , si j'utilise une boucle while comme cela

    Citation Envoyé par Flodelarab Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while read ligne
    do
            echo "macommande $ligne"
    done < fichier.txt
    Sachant qu'en bash, le fichier.txt peut être remplacé par une substitution de processus <( ).
    je devrais faire une boucle de boucles pour traiter tous les fichiers ?

  9. #9
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 695
    Points : 30 993
    Points
    30 993
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Amaury77 Voir le message
    C'est cela, mais les derniers fichiers ne sont pas bien traité voir sauter car issu d'un ls
    Dans mon exemple for f in *; do echo "[$f]"; done il n'y a pas de "ls" !!!

    Citation Envoyé par Amaury77 Voir le message
    si j'utilise une boucle while comme cela while read ligne; do echo "macommande $ligne" done < fichier.txt je devrais faire une boucle de boucles pour traiter tous les fichiers ?
    Tu n'as absolument rien bité de la commande de Flodelarab

    Son exemple explique comment lire un fichier nommé "fichier.txt" ligne par ligne. Et cet exemple plus généraliste while read ligne; do echo "macommande $ligne" done < <(commande Unix retournant des lignes) permet de lire une commande Unix retournant des lignes ligne par ligne.
    Ce type de syntaxe s'appuie sur le fait qu'un read lit tout jusqu'au <return> tandis qu'une ligne affichée par une commande Unix se termine par <return>.
    Donc le "read" lit une ligne entière en provenance du fichier (première syntaxe) ou de ce que la commande affiche (seconde syntaxe) et le "while" fait ensuite boucler pour tout lire ligne par ligne.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  10. #10
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 122
    Points : 4 491
    Points
    4 491
    Par défaut
    bonjour

    si tu désires véritablement de l'aide, il faut nous donner le code (et types des fichiers) sinon il nous est impossible de deviner ! et donc d'apporter une véritable aide.

    L'erreur peut-être dans ta boucle mais aussi dans ton traitement dans cette boucle (sed et cat ?)
    Peut-être que tu as des espaces (ou autre) dans les noms de fichier qu'au bout de 800 fichiers ?
    Peut-être que le contenu des fichiers est mauvais au bout de 800 fichiers ?
    Peut-être que ... (fois 100)

    Mais vu ta dernière réponse, apparemment, tu n'es pas à l'aise avec bash donc c'est plutôt une erreur de codage

    Une première chose est de lancer le script en mode debug (avec -X )
    $moi= ( !== ) ? : ;

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Consultant E-Learning
    Inscrit en
    Août 2022
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant E-Learning

    Informations forums :
    Inscription : Août 2022
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    fichiers dans dossier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    oligo-rec-dyn.0.wo_frame_20.a1 
    oligo-rec-dyn.0.wo_frame_40.a1 
    oligo-rec-dyn.0.wo_frame_60.a1 
    oligo-rec-dyn.0.wo_frame_80.a1 
    oligo-rec-dyn.0.wo_frame_100.a1 
    ...
    100 fichiers
    ...
    ...
    oligo-rec-dyn.900.w_frame_20.a1 
    oligo-rec-dyn.900.w_frame_40.a1 
    oligo-rec-dyn.900.w_frame_60.a1 
    oligo-rec-dyn.900.w_frame_80.a1 
    oligo-rec-dyn.900.w_frame_100.a1
    (il y a 20 lignes par fichiers)

    Je voudrais qu'ils soient traités dans l'ordre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    list3="$(ls -v oligo-*.a1)" # ils n'ont pas tous été créés à la même date d'où le "-v", la liste contient bien tout les fichiers
     
    cat $list3 > all_oligo.a1 # là je réunis le contenu des fichiers dans un fichier unique or certaines lignes des fichiers que j'essaie de réunir ont sauté, notamment celles des fichiers de la fin.
    J'ai toutes les lignes pour ceux-là (les premiers) : oligo-rec-dyn.0.wo_frame_20.a1, oligo-rec-dyn.0.wo_frame_40.a1 ,oligo-rec-dyn.0.wo_frame_60.a1 ,oligo-rec-dyn.0.wo_frame_80.a1 , oligo-rec-dyn.0.wo_frame_100.a1 , oligo-rec-dyn.0.w_frame_20.a1 , oligo-rec-dyn.0.w_frame_40.a1 et encore des fois il en manque une.

    mais pour ceux-là (les derniers): oligo-rec-dyn.900.w_frame_80.a1, oligo-rec-dyn.900.w_frame_100.a1, j'ai que 2 lignes

    Là je me rends compte qu'il manque des lignes sur la fin, d'où mon impression que le script "s’arrête" ou qu'il "s'épuise"

  12. #12
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 559
    Points : 19 399
    Points
    19 399
    Par défaut
    une version sûre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ find "$src" -maxdepth 1 -type f -name 'oligo-*.a1' -print0 | sort -zV | xargs -I{} -0 cat {} >"$dst/ouptut.fic"
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  13. #13
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 249
    Points : 13 472
    Points
    13 472
    Par défaut
    Beaucoup de choses à répondre :
    • D'abord, pour savoir si un élève est manquant, on compte les élèves. On ne regarde pas seulement si les cancres sont là. Il faut compter tes fichiers, pas regarder la fin de liste.
    • Pour compter, souvent, on utilise ceci :
    • Il y a au moins 2 ordres naturels : l'ordre numérique et l'ordre lexicographique.
      • 10.txt est devant 100.txt dans l'ordre numérique.
      • 100.txt est devant 10.txt dans l'ordre lexicographique (alphabétique, si tu préfères)

      Ton "dernier" fichier 100 est probablement perdu à côté du fichier 10.
    • On n'utilise pas ls dans un script. On remplace par find ou stat.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  14. #14
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 695
    Points : 30 993
    Points
    30 993
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Amaury77 Voir le message
    Je voudrais qu'ils soient traités dans l'ordre
    Dans quel ordre exactement ? Parce que si c'est leur ordre nominatif, alors for f in *; do echo "[$f]"; done (déjà mentionné deux fois) le fera parfaitement.
    Et si c'est un autre ordre, alors imaginons que la commande "xxx" ressorte tous les fichiers dans cet ordre là, ce sera while read f; do echo "[$f]"; done <( (xxx) ("xxx" à adapter ensuite à partir de la vraie commande qui renvoie les fichiers dans l'ordre qui te convient mais en excluant "ls").

    Citation Envoyé par Amaury77 Voir le message
    cat $list3 > all_oligo.a1
    Evidemment !!!
    Donc les commandes Unix (ex "cat") peuvent bien évidemment recevoir des éléments en paramètre (ex cat titi toto tata) mais la mémoire d'un programme n'est pas illimitée. Parce que ces arguments, le programme il doit d'abord les stocker pour les traiter. Tu n'es jamais tombé sur un message style cmd: arg_list too long parce que tu avais tapé cmd * ("cmd" à adapter en fonction de vraies commandes que tu peux être amené à utiliser) ?
    Et là tu envoies allègrement à "cat" tes 2000 fichiers. Remarque 2000 c'est pas exagéré et normalement ça devrait le faire mais bon, visiblement ça ne le fait pas et même si ça le faisait pour 2000, ce n'est pas pérenne (le jour où ça passera à 10000, 100000...)

    Donc il faut boucler sur chaque fichier et traiter chaque fichier => for f in oligo*; do cat "$f"; done >"all_oligo.a1".

    Et c'est parce que ce type de travail, que de traiter tous les fichiers via une action, était très souvent nécessaire que les programmeurs Linux ont créé "xargs" mentionnée par N_BaH dont le rôle est de découper une grosse liste input en n petites listes output afin de pouvoir faire traiter ces petites listes par des commandes de son choix pour lesquelles ces petites listes seront acceptables en terme de taille => find . -type f -name "oligo*" -print0 | xargs -0 -I {} cat {} >"all_oligo.a1".
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Consultant E-Learning
    Inscrit en
    Août 2022
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant E-Learning

    Informations forums :
    Inscription : Août 2022
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Dans quel ordre exactement ?
    Ordre numérique

  16. #16
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 695
    Points : 30 993
    Points
    30 993
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Amaury77 Voir le message
    Ordre numérique
    C'est un peu ce que Flodelarab pensait quand il a parlé d'ordre numérique par rapport à l'ordre alphabétique.
    C'est bien vu d'avoir pensé au "ls -v" (mais les fichiers temporaires étaient inutiles, tu aurais dû écrire cat $(ls -v oligo*) >"all_oligo.a1"). Sauf qu'on n'utilise pas de "ls" dans les scripts (ce que tu ne savais pas).
    Donc voir la solution de N_BaH qui récupère tous tes fichiers, les trie numériquement, puis appelle "xargs" qui elle se charge de faire la boucle sur le flot qu'elle reçoit (la liste triée) pour pouvoir les faire traiter par "cat" un à un.
    Ce qui donne find . -maxdepth 1 -type f -name 'oligo-*.a1' -print0 | sort -zV | xargs -0 -I{} cat {} >"all_oligo.a1".

    La même version plus détaillée
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    find . -maxdepth 1 -type f -name 'oligo-*.a1' -print | sort -V |while read f; do
        cat "$f"
    done >"all_oligo.a1"
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Consultant E-Learning
    Inscrit en
    Août 2022
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant E-Learning

    Informations forums :
    Inscription : Août 2022
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script sh / boucle sans fin qui s'arrête toute seule
    Par FaTaL25 dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 27/09/2012, 12h42
  2. [Turbo Pascal] Mon programme s'arrête tout seul
    Par kenny94 dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 10/09/2011, 07h46
  3. [PC fixe] Mon ordinateur s'arrête tout seul.
    Par zilis dans le forum Ordinateurs
    Réponses: 4
    Dernier message: 22/01/2011, 19h27
  4. [MySQL] Script php avec insertion dans base de données qui s'arrête tout seul
    Par tofito dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 04/12/2008, 21h39
  5. mon portable s'arrête tout seul
    Par tsague dans le forum Ordinateurs
    Réponses: 4
    Dernier message: 07/05/2008, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo