Bonjour à toutes et à tous !

Je crée ce sujet car j'ai un problème relatif à wget. Grosso modo, je dois télécharger des fichiers depuis un serveur A vers un serveur B, et j'ai des temps de latence de deux minutes et quelques avec ce genre de message d'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.
Voici les détails :

Tout d'abord, pour le serveur local, depuis lequel j'exécute wget.
Appelons-le serveur B :

  • Système d'exploitation : Red Hat Enterprise Linux ES release 4 (Nahant Update 5)
  • Version de wget : 1.10.2
  • Protocole de transfert utilisé : HTTPS
  • Commande wget :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
wget --no-check-certificate -a<LOGFILE> -N -r -nv -nH -A *.zip -P <DSTDIR> https://ServeurA/Dossier

avec :
<LOGFILE> : le fichier de log résultant du transfert via wget
<DSTDIR> : le dossier de destination
Ensuite, voici les détails du serveur A, le serveur distant sur lequel je me connecte pour récupérer des fichiers.

  • Système d'exploitation : Windows Server 2008 R2
  • Serveur web : IIS 7.5
  • Détails du site web :
    • Nom du site : Data Transfer
    • Path Physique : MonPath
    • Binding Type : https
    • Binding Port : 443
    • Certificat SSL auto-signé
    • Directory Browsing activé
    • Logging activé
    • SSL Settings :
      • Require SSL coché
      • Client Certificate : Bouton radio Accept sélectionné




Le transfert se lance chaque heure, car de nouveaux fichiers arrivent chaque heure.

Le nombre de fichiers est assez important, aux alentours de 10 000.

Voici un exemple de trace, avec l'option -d activée, l'option -nv supprimée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Dequeuing https://ServeurA/Dossier/SousDossier/Fichier1.zip at depth 2
Queue count 8728, maxcount 10391.
--14:57:08--  https://ServeurA/Dossier/SousDossier/Fichier1.zip
           => `DSTDIR/Dossier/SousDossier/Fichier1.zip'
Reusing existing connection to ServeurA:443.
Reusing fd 4.
 
---request begin---
HEAD /Dossier/SousDossier/Fichier1.zip HTTP/1.0
Referer: https://ServeurA/Dossier/SousDossier/
User-Agent: Wget/1.10.2 (Red Hat modified)
Accept: */*
Host: ServeurA
Connection: Keep-Alive
 
---request end---
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.
Disabling further reuse of socket 4.
Closed 4/SSL 0x82b2c70
Retrying.
 
--14:59:20--  https://ServeurA/Dossier/SousDossier/Fichier1.zip
  (try: 2) => `DSTDIR/Dossier/SousDossier/Fichier1.zip'
Found ServeurA in host_name_addresses_map (0x828cda8)
Connecting to ServeurA|MonIP|:443... connected.
Created socket 4.
Releasing 0x0828cda8 (new refcount 1).
Initiating SSL handshake.
Handshake successful; connected socket 4 to SSL handle 0x082b3610
certificate:
  subject: <Je ne peux pas mettre ces informations ici>
  issuer:  <Je ne peux pas mettre ces informations ici>
WARNING: Certificate verification error for ServeurA: unable to get local issuer certificate
 
---request begin---
HEAD /Dossier/SousDossier/Fichier1.zip HTTP/1.0
Referer: https://ServeurA/Dossier/SousDossier/
User-Agent: Wget/1.10.2 (Red Hat modified)
Accept: */*
Host: ServeurA
Connection: Keep-Alive
 
---request end---
HTTP request sent, awaiting response... 
---response begin---
HTTP/1.1 200 OK
Content-Length: 2369
Content-Type: application/x-zip-compressed
Last-Modified: Sun, 01 Jul 2012 00:10:00 GMT
Accept-Ranges: bytes
ETag: "bfe12adb1d57cd1:0"
Server: Microsoft-IIS/7.5
Date: Thu, 05 Jul 2012 12:59:19 GMT
Connection: keep-alive
 
---response end---
 
  HTTP/1.1 200 OK
  Content-Length: 2369
  Content-Type: application/x-zip-compressed
  Last-Modified: Sun, 01 Jul 2012 00:10:00 GMT
  Accept-Ranges: bytes
  ETag: "bfe12adb1d57cd1:0"
  Server: Microsoft-IIS/7.5
  Date: Thu, 05 Jul 2012 12:59:19 GMT
  Connection: keep-alive
Registered socket 4 for persistent reuse.
Length: 2,369 (2.3K) [application/x-zip-compressed]
Server file no newer than local file `DSTDIR/Dossier/SousDossier/Fichier1.zip' -- not retrieving.
Dans cet exemple, le fichier avait déjà été téléchargé par le passé, c'est la raison pour laquelle nous n'avons qu'un HEAD et non un GET. L'erreur arrive également pour des GET.

De plus, ces erreurs arrivent également avec une nouvelle version de wget, la 1.12, que j'ai récemment installé.

Le seul point important que j'ai vraiment remarqué, c'est que quand je spécifie une expression régulière plus "précise" dans le -A, je n'ai plus cette erreur. Par exemple, il y a la date-heure dans les noms de fichier sous la forme : YYYY-MM-DD-HH. Du coup, je base une expression régulière là-dessus. Au lieu de faire un *.zip, je fais un *-YYYY-MM-DD-HH-*.zip.

Je ne comprends pas trop ce problème pour être honnête. Est-ce que le problème vient du nombre de fichiers trop important à vérifier pour wget ? Ou alors est-ce que cela vient de micro-coupure dans la connexion entre le serveur A et le serveur B ?

L'erreur semble provenir du côté serveur, je dirais, au vu du libellé de cette erreur, mais je n'arrive pas à trouver la moindre trace de cela.

Aussi, je me demandais si quelqu'un pouvait m'aider à ce niveau. Peut-être ai-je fait une erreur dans la configuration du site web ?

Merci d'avance pour votre aide.

Cordialement,

Bahan