URL: https://linuxfr.org/forums/programmation-python/posts/fabric-inclure-while-dans-un-run-resolu Title: Fabric inclure while dans un run (Résolu) Authors: hakhak91 Date: 2016年02月02日T16:14:06+01:00 License: CC By-SA Tags: shell, fabric et python Score: 0 Bonjour à tous, Le contexte nous devons modifier l'ensemble des vhost en ajoutant un nouveau paramètre SSL sur l'ensemble de nos serveurs. Fabric fonctionne est très utile mais là je bloque. Nous essayons de faire une commande sur fabric dont je ne trouve pas la solution et je ne suis pas sûr que cela soit réalisable depuis fabric. la commande que nous souhaitont exécuter est la suivante: ```bash find /tmp/ -type f -name '*.foo.fr' -print0| while IFS= read -r -d '' filename; do sed -i 's/<\/virtualhost>/SSL xxxx\n<\/virtualhost>/' $filename; done ``` sur bash pas de problème sa fonctionne en revanche sur fabric lors de l'exécution nous avons les messages suivant [localhost] sudo: find /tmp/ -type f -name *.cacom.fr -print0| while IFS= read -r -d filename; do sed -i s/<\/virtualhost>/SSL xxxx\n<\/virtualhost>/ $filename; done [localhost] out: sudo password: [localhost] out: /bin/bash: /VirtualHost: Aucun fichier ou dossier de ce type [localhost] out: Warning: sudo() received nonzero return code 1 while executing 'find /tmp/ -type f -name *.cacom.fr -print0| while IFS= read -r -d filename; do sed -i s/<\/virtualhost>/SSL xxxx\n<\/virtualhost>/ $filename; done'! Bizarement il est indiqué qu'il ne trouve pas /VirtualHost et pourtant c'est pas ce qui est demandé Voici le bout de mon programme sudo('find /tmp/ -type f -name ''*.foo.fr'' -print0| while IFS= read -r -d '' filename; do sed -i ''s/<\/virtualhost>/SSL xxxx\\n<\/virtualhost>/'' $filename; done') Nous avons essayé différentes syntaxes ```python sudo('find /tmp/ -type f -name ''*.foo.fr'' -print0| while IFS= read -r -d '' filename; do sed -i ''s/<\/virtualhost>/SSL xxxx\\n<\/virtualhost>/'' $filename; done') sudo('find /tmp/ -type f -name ''*.foo.fr'' -print0| while IFS= read -r -d '' filename; do sed -i ''s/<\/virtualhost>/SSL xxxx\n<\/virtualhost>/'' $filename; done').succeeded sudo('find /tmp/ -type f -name ''*.foo.fr'' -print0| while read -r -d '' filename; do sed -i ''s/<\/virtualhost>/SSL xxxx\n<\/virtualhost>/'' $filename; done') ``` sans succès Votre aide est la bienvenue ;-)