Forum Programmation.shell comportement étrange de curl dans un script.

Posté par  . Licence CC By‑SA.
Étiquettes :
0
12
déc.
2018

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  . Évalué à 1.

    monscript et ses options >masortie.log 2>&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  . É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.

      curl -k --request POST `{mathjax} {headerparams} `{fullurl} 
      

      Le souci vient de la commande curl ou de son utilisation.

  • # verbose

    Posté par  . Évalué à 2.

    Met un flag --verbose pour voir où ça coince.

  • # voire un set -x

    Posté par  . Évalué à 3.

    …dans ton script pour t'assurer de la commande curl que tu generes

    • [^] # Re: voire un set -x

      Posté par  . É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.