Bonjour à tous,
J'ai un comportement étrange dans un script shell avec la commande curl.
Dans mon script je génère dynamiquement les paramètres de ma commande pour obtenir la commande suivante :
curl -k --request POST -H "type:csv" -H "import:fich" -H "zipped:true" -H "fichier:nbncsv00002.csv.zip" -H "key:JmzEVJ2EezlkfemlfmleSDKKFekv" -T /tmp/tmp.QJENaDVvAV/nbncsv00002.csv.zip http://www.xxx.yyy.zzz:pppp/monappli/import 2>&1>/tmp/tmp.QJENaDVvAV/curlreturn.log
Lors de l'exécution dans le script cette commande ne semble pas atteindre le serveur qui reçois le fichier;ça se caractérise par pas d'entrée dans les logs.
malgré l'affichage des infos suivantes.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1136 100 1136 0 0 12443 0 --:--:-- --:--:-- --:--:-- 12483
Alors que la même ligne de commande ( qui a été générée par le script je fait un echo de la ligne générée avant de l’exécuter pour voir ) copiée dans un terminal interactif fonctionne.
ma version de curl est : curl 7.38.0 (x86_64-pc-linux-gnu)
Si quelqu'un peut m'aider?
après la lecture complète du man de curl et de bash je ne voie pas quel peut être le problème.
curl -k --request POST ${headerparams} ${fullurl} 2>&1>${tmpfileconvdir}/curlreturn.log
Si quelqu'un peut m'aider?
# perso j'ecris mes redirections dans l'autre sens
Posté par NeoX . Évalué à 1.
dans ton cas il manque peut-etre juste un espace entre ton 2>&1 et le > suivant
[^] # Re: perso j'ecris mes redirections dans l'autre sens
Posté par Nodeus . Évalué à 1. Dernière modification le 12 décembre 2018 à 19:23.
en l’occurrence ce qui pose problème est la structure du curl pas la redirection de fin
car le problème est le même avec ou sans cette redirection des log vers un fichier.
Le souci vient de la commande curl ou de son utilisation.
# verbose
Posté par jemore . Évalué à 2.
Met un flag --verbose pour voir où ça coince.
# voire un set -x
Posté par guitou . Évalué à 3.
…dans ton script pour t'assurer de la commande curl que tu generes
[^] # Re: voire un set -x
Posté par Nodeus . Évalué à 2.
En fait le souci venait d'un problème de protection de surprotection des paramètre avec des "
lorsque j'envoyais les paramètres curl envoyait égallement les guillemets donc au lieu d'envoyer par exemple key:AZDSSQFDQSF j'envoyais "key:"AZDSSQFDQSF""
donc forcement coté serveur problème de reconnaissance des valeurs
Voilà les échappements toujours un sujet à vérifier en shell
Merci à tous ceux qui m'ont répondus.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.