comparer un fichier local et un fichier distant (http)? [shell] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 11-02-2004 à 12:13:21
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 ?
Marsh Posté le 11-02-2004 à 12:15:20
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+
Marsh Posté le 11-02-2004 à 13:00:44
Je vois pas trop le rapport avec ton fichier et les en tetes HTTP ...
A+
Marsh Posté le 11-02-2004 à 13:32:29
Citation : |
Si, c'est possible...
Citation : |
... 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 :
|
Avec wget, je crois qu'il faut utiliser "-S" et "--spider" (cf. man)
|
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.
Marsh Posté le 11-02-2004 à 12:04:36
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