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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [shell] comparer un fichier local et un fichier distant (http)?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[shell] comparer un fichier local et un fichier distant (http)?

n°406810
duch
Posté le 11-02-2004 à 12:04:36  profilanswer
 

Salut,
 
je suis en trian d'écrire un script pour mettre à jour ma base de ip-to-country.
 
Le principe est simple, tous les jours je vérifie si une nouvelle version de la base est dispo à l'adresse suivante : http://ip-to-country.webhosting.in [...] ry.csv.zip
 
puis je mets à jour ma base avec la commande LOAD DATA de mysql.
 
 
 
Ce que je n'arrive pas à faire proprement c'est comparer les versions des fichiers, pour l'instant j'arrive à le faire avec la méthode bourrine, je télécharge le fichier et je fait un diff.
Mais j'aimerais ne pas avoir à le télécharger pour vérifier si c'est bien la dernière version (histoire de ne pas leur bouffer de bande passante, ni à moi d'ailleurs).
 
 
Existe-t'il un moyen? avec wget?
 
NB : une simple comparaison sur la date suffira.


Message édité par duch le 11-02-2004 à 12:05:09
mood
Publicité
Posté le 11-02-2004 à 12:04:36  profilanswer
 

n°406814
bobuse
Posté le 11-02-2004 à 12:13:21  profilanswer
 

je pense pas que tu puisse accéder à la taille du fichier en http :/ par conter en ftp, ce serait possible, mais as-tu un accèes ftp ?

n°406815
Aragorn_1e​r
Le jihad butlérian est proche
Posté le 11-02-2004 à 12:15:20  profilanswer
 

Dans la page d'acceuil y a "The database was last updated on February 08 2004"
 
Tu compare cette date a ce que tu as et puis voilà.
 
PS : pour comparer 2 fichiers un truc + propre est la methode md5sum.
 
A+

n°406828
duch
Posté le 11-02-2004 à 12:50:34  profilanswer
 

et même avec les en-têtes http, y'a pas un moyen?

n°406832
Aragorn_1e​r
Le jihad butlérian est proche
Posté le 11-02-2004 à 13:00:44  profilanswer
 

Je vois pas trop le rapport avec ton fichier et les en tetes HTTP ...
 
A+

n°406844
unk00
Posté le 11-02-2004 à 13:32:29  profilanswer
 

Citation :


je pense pas que tu puisse accéder à la taille du fichier en http


 
 Si, c'est possible...
 

Citation :


Je vois pas trop le rapport avec ton fichier et les en tetes HTTP  


 
 ... si le serveur respecte un minimum le protocole HTTP, il doit renvoyer l'entête "Content-Length" qui est la taille du fichier demandé. Enfin, un serveur ne renvoie pas toujours cette entête, notamment dans le cas de scripts dynamiques pour lesquels il ne peut pas déterminer la taille à l'avance.
 Bref... Dans le cas présent, c'est un fichier statique, il est donc probable que ce champ soit correctement rempli.
 
 Avec curl :


$ curl --head http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip
HTTP/1.1 200 OK
Date: Wed, 11 Feb 2004 12:25:01 GMT
Server: Apache
Last-Modified: Sun, 08 Feb 2004 13:18:18 GMT
ETag: "3fa496-5d46f-4026371a"
Accept-Ranges: bytes
Content-Length: 382063
Content-Type: application/zip
 


 
Avec wget, je crois qu'il faut utiliser "-S" et "--spider" (cf. man)


$ wget -S --spider http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip
--13:27:28--  http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip
           => `ip-to-country.csv.zip'
Resolving ip-to-country.webhosting.info... 209.61.162.6
Connecting to ip-to-country.webhosting.info[209.61.162.6]:80... connected.
HTTP request sent, awaiting response...
 1 HTTP/1.1 200 OK
 2 Date: Wed, 11 Feb 2004 12:27:29 GMT
 3 Server: Apache
 4 Last-Modified: Sun, 08 Feb 2004 13:18:18 GMT
 5 ETag: "3fa496-5d46f-4026371a"
 6 Accept-Ranges: bytes
 7 Content-Length: 382063
 8 Keep-Alive: timeout=15
 9 Connection: Keep-Alive
10 Content-Type: application/zip
200 OK
 


 
 Avec ces infos, on peut comparer la date de dernière modification (Last-Modified) et la taille (Content-Length), ce qui permet d'être à peu près sur de son coup.
 
 Remarque : certains serveurs renvoient l'entête "Content-MD5", qui est la somme de contrôle MD5 du fichier, ce qui ici serait plus fiable pour comparer. Mais bon, ce n'est a priori pas le cas pour ce serveur.


Message édité par unk00 le 11-02-2004 à 14:31:40
n°406874
bobuse
Posté le 11-02-2004 à 14:02:35  profilanswer
 

:jap:

n°406905
duch
Posté le 11-02-2004 à 14:30:47  profilanswer
 

super!!!
 
merci.


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

  [shell] comparer un fichier local et un fichier distant (http)?

 

Sujets relatifs
demande d'aide pour traitement de fichier en ligne de commandelister les alias en shell ??
Sauvegarder l'historique des commandes tapées dans le shell.passer des variables shell à sed
serveur de fichier, samba sur reseau 2000, problém de configfichier .config pour kernel 2.6.1, qqun peux m'en passer un ?
Utiliser Lynx - links - W3m dans un script shell[VI] Le shell refuse mes commandes shell scrpits de VI ;o(
[ TAR ] découpage en fichierbind en local
Plus de sujets relatifs à : [shell] comparer un fichier local et un fichier distant (http)?


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