web-dev-qa-db-fra.com

Bash - Curl (6) n'a pas pu résoudre le problème de l'hôte

J'ai un problème avec mon script bash. Il produit une erreur de

curl (6) couldn't resolve Host

Qu'est ce que j'ai mal fait?

Ce qui suit est mon script bash.

#!/bin/bash

string="$(mysql -u root -p Company 'select name from HR')"
url="http://www.company.com/company/hr/$string"

curl -F $url
11
Hend

Essayez d’imprimer toute la chaîne/l’URL. Je crois qu'il devrait y avoir des problèmes. 

4
J eremy

Selon l'homme curl, l'erreur 6 signifie "Impossible de résoudre l'hôte. L'hôte Donné n'a pas été résolu." vous devrez donc vérifier si le nom d’hôte du fichier url peut être résolu en adresse IP. 

lorsque vous devez envoyer des données à un serveur, par exemple à l'aide du formulaire ci-dessous, 

<form method="POST" enctype='multipart/form-data' action="upload.cgi">
  <input type=file name=upload>
  <input type=submit name=press value="OK">
</form>

vous pouvez le faire rouler avec l'équivalent suivant. (assurez-vous que le serveur que vous avez envoyé est également prêt à recevoir les données)

curl -F upload=@localfilename -F press=OK [resolv-able url]
4
Jasonw

Et pouvez-vous ping "www.company.com" (je suppose que ce n'est pas le réel nom auquel vous vous connectez)?

Et il peut être intéressant d’imprimer la variable $url avant de la nommer curl car elle pourrait être mal formée.

Et une dernière chose. Êtes-vous bien sûr devriez-vous utiliser -F? Cela semble être le remplissage automatisé du formulaire. Est-il possible que vous vouliez "échouer en silence" l'option -f?

2
paxdiablo

Juste pour être complet: cela se produit également s'il y a des problèmes sur votre réseau.

Par exemple, pour tester cela, sur votre machine locale, fermez la connexion à Internet et essayez de vous connecter à l'URL: la même erreur est renvoyée.

Donc, actuellement, je ne sais pas comment distinguer les problèmes sur le serveur distant de ceux sur notre propre réseau.

0
Aerendir