Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1024 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  CURL ok exécuté manuellement mais pas ok en script ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

CURL ok exécuté manuellement mais pas ok en script ?

n°1461340
Groody
Utilisez MES smileys §
Posté le 01-03-2021 à 15:22:00  profilanswer
 

Salut !

 

Je dois migrer en urgence des scripts d'un serveur à un autre (d'un hébergeur à un autre) (et tout doit être fait pour demain soir au plus tard).

 

Sur le premier serveur, cette commande est appelée via un script ( .sh ).

 
Code :
  1. curl "http://serveur.com/images/latest.jpg" -z /home/clients/xxx/www/images/lastest.jpg -o /home/clients/xxx/www/images/lastest-TEMP.jpg --location --remote-time
 

Sur le nouveau serveur, quand j'excécute cette commande à la main, tout se passe bien.
Mais si la même commande appelée par un script.sh  donne une erreur : ": is unknown --remote-time"

 

Alors que ça fonctionne parfaitement sur le 1er.

 

Ma question est, pourquoi une telle différence entre à la main, et via un script ?

 

:jap:


Message édité par Groody le 01-03-2021 à 15:31:26

---------------
Vidéo Concorde Air France | www.kiva.org
mood
Publicité
Posté le 01-03-2021 à 15:22:00  profilanswer
 

n°1461341
Groody
Utilisez MES smileys §
Posté le 01-03-2021 à 15:39:26  profilanswer
 

Bon apparemment c'est une histoire de chemin, pourtant ils sont bons.
Je continue de débuguer...


---------------
Vidéo Concorde Air France | www.kiva.org
n°1461342
rat de com​bat
attention rongeur méchant!
Posté le 01-03-2021 à 16:01:20  profilanswer
 

Ca donne quoi which curl manuellement et dans le script?

n°1461343
Groody
Utilisez MES smileys §
Posté le 01-03-2021 à 16:03:26  profilanswer
 

Manuellement : /usr/bin/curl
Dans le script : rien, aucune ligne de contenu


---------------
Vidéo Concorde Air France | www.kiva.org
n°1461345
rat de com​bat
attention rongeur méchant!
Posté le 01-03-2021 à 16:06:22  profilanswer
 

Ah. Problème.
 
Et echo $PATH idem 2 fois?


---------------
matos à vendre
n°1461348
Groody
Utilisez MES smileys §
Posté le 01-03-2021 à 16:14:27  profilanswer
 

A la main :

Code :
  1. /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/mysql/bin:/opt/php/bin
 

Script :

Code :
  1. /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/mysql/bin:/opt/php/bin
 

Même chose donc.


Message édité par Groody le 01-03-2021 à 16:15:05

---------------
Vidéo Concorde Air France | www.kiva.org
n°1461349
rat de com​bat
attention rongeur méchant!
Posté le 01-03-2021 à 16:17:04  profilanswer
 

Étrange... A tout hasard, manuellement, ls -l /usr/local/bin/curl (-L minuscule) ça sort "not found" ou autre chose?


---------------
matos à vendre
n°1461350
Groody
Utilisez MES smileys §
Posté le 01-03-2021 à 16:21:44  profilanswer
 

mes chemins sont bons, je les mets en absolu, j'ai toujours ça en résultat :
 

Code :
  1. : is unknown --remote-time
  2. curl: try 'curl --help' or 'curl --manual' for more information


 
 
 
Résultat de ta commande :

Code :
  1. ls: cannot access /usr/local/bin/curl: No such file or directory



---------------
Vidéo Concorde Air France | www.kiva.org
n°1461351
rat de com​bat
attention rongeur méchant!
Posté le 01-03-2021 à 16:24:02  profilanswer
 

Désolé, je sèche. :(


---------------
matos à vendre
n°1461352
Groody
Utilisez MES smileys §
Posté le 01-03-2021 à 16:25:25  profilanswer
 

Pas grave, merci pour ton aide ! :)


---------------
Vidéo Concorde Air France | www.kiva.org
mood
Publicité
Posté le 01-03-2021 à 16:25:25  profilanswer
 

n°1461353
Groody
Utilisez MES smileys §
Posté le 01-03-2021 à 16:44:20  profilanswer
 

J'ai viré "--remote-time" en fin de ligne pour le remplacer par "-R" en début de ligne après CURL. Ca semble marcher !
 
Maintenant j'ai une erreur avec " --location". Je ne suis pas sûr d'en avoir besoin, ça fonctionne sans.
 
Je continue tests...


---------------
Vidéo Concorde Air France | www.kiva.org
n°1461387
o'gure
Modérateur
Multi grognon de B_L
Posté le 02-03-2021 à 08:43:42  profilanswer
 

quel est ton script (bash zsh php) ?
comment est appelé cette commande ?  
 - encodée en dur ?
 - générée ?
y-a-t-il des caractères ou des choses différentes entre ce que tu saisis en CLI ou dans ton script ?
 


---------------
Relax. Take a deep breath !
n°1461390
Groody
Utilisez MES smileys §
Posté le 02-03-2021 à 08:52:14  profilanswer
 

Ce script est un .SH que j'appelle en SSH (ou via CRON quand ça fonctionne.
Il tourne dans un de mes hébergements sur mon "serveur cloud managé" chez Infomaniak (et je n'avais aucun problème avant avec le même script chez O2switch).
 
Quand j'ai tenté à la main, j'ai fait un copier/coller donc la commande était identique.
 
Qu'en penses-tu ? :o


---------------
Vidéo Concorde Air France | www.kiva.org
n°1461391
o'gure
Modérateur
Multi grognon de B_L
Posté le 02-03-2021 à 08:57:08  profilanswer
 

un .sh ne veut pas dire grand chose. Tout dépend de l'interpréteur que tu colles dans ton script.
Plusieurs possibilité:
- un caractère "invisible" a été rajouté lors du copier coller
- via con/script le path n'est pas le même que dans ton shell et tape sur une autre version de curl sans l'option qui pose problème

 

Et sur le
"comment est appelé cette commande ?  
 - encodée en dur ?
 - générée ?
y-a-t-il des caractères ou des choses différentes entre ce que tu saisis en CLI ou dans ton script ? " ?
ce n'est pas parce que tu copies/colles que c'est censé fonctionner out of the box sur une nouvelle infra malheureusement... Il y a plusieurs paramètres qui peuvent faire tout foirer


Message édité par o'gure le 02-03-2021 à 09:01:40

---------------
Relax. Take a deep breath !
n°1461392
Groody
Utilisez MES smileys §
Posté le 02-03-2021 à 09:02:25  profilanswer
 

Le copier coller s'est fait du script vers la console SSH, c'est exactement la même chose.
 
Via la console il accepte " --location --remote-time", via le script non.
 
 
Je ne sais pas quelles infos te donner en plus.  [:groody]  
Le script comment par :
 #!/bin/bash
 


---------------
Vidéo Concorde Air France | www.kiva.org
n°1461406
kajoux
Posté le 02-03-2021 à 12:53:17  profilanswer
 

Si -R passe au début de la commande mais pas --remote-time à la fin, il y a des chances que tu aies un caractère foireux quelque part (que le copier-coller n'attraperait pas forcément).
Mais bon, si ça passe comme ça, et en mettant -L au début au lieu de --location à la fin, qu'est-ce qu'il te reste comme problème ? (en mettant aussi des chemins complets pour les commandes, surtout dans cron)


Message édité par kajoux le 02-03-2021 à 12:54:11
n°1461409
Groody
Utilisez MES smileys §
Posté le 02-03-2021 à 13:20:12  profilanswer
 

Il n'y a pas eu de copier/coller vers le fichier du script, mais l'inverse, j'ai copier depuis le script (qui ne fonctionne pas) pour coller dans une session SSH (où là la commande passe).


---------------
Vidéo Concorde Air France | www.kiva.org

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  CURL ok exécuté manuellement mais pas ok en script ?

 

Sujets relatifs
Script bash configurationScript qui s'arrête quand la connexion SSH est fermée
[Bourne sh] ScriptLe fichier texte xxx semble être un script exécutable.
problème execution script python avec crontabScript PowerShell téléchargement
Shell script : utilisation de grep ''sauf si''Script bash utilisateur ubuntu
script automatisation installation fedora workstationScript vs shell ... casse tête : )
Plus de sujets relatifs à : CURL ok exécuté manuellement mais pas ok en script ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR