WGET, renommer le fichier téléchargé à la volé

WGET, renommer le fichier téléchargé à la volé - Logiciels - Linux et OS Alternatifs

Marsh Posté le 21-12-2015 à 11:33:10    

Salut,
 
J'ai regardé les docs sur le net mais je ne vois rien, ce n'est peut-être pas possible.
 
J'ai plusieurs images à récupérer sur un site web distant pour les mettre en "cache" sur un autre site. Je vais l'automatiser avec un cron sur le serveur Web.
 
J'utilise -N pour vérifier le timestamp et ne télécharger que si l'image source a changé.
 
Plusieurs de ces images ont le même nom (mais ne sont pas dans le même dossier).
J'aimerai toutes les stocker dans le même dossier sur le serveur de destination.
 
J'aimerai donc, lors du wget, indiquer un nom de sortie. Est-ce possible ?
 
 :jap:


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

Marsh Posté le 21-12-2015 à 11:33:10   

Reply

Marsh Posté le 21-12-2015 à 11:35:35    

Argh, -O !
Désolé... [:groody]


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

Marsh Posté le 21-12-2015 à 11:47:35    

Ah, par contre le -N ne fonctionne plus avec le -O
L'image est téléchargée à chaque exécution de la commande, même si le fichier de l'autre côté n'est pas modifié.

 

Ca refonctionne dès que je vire le -O
"Server file no newer than local file `latest.png' -- not retrieving"

 


Auriez-vous une idée svp ?

 


Edit : retour de la commande pas vue avant : " WARNING: timestamping does nothing in combination with -O. See the manual"
Argh


Message édité par Groody le 21-12-2015 à 11:55:50

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

Marsh Posté le 21-12-2015 à 12:08:36    

MAN wget ? :p
 

Citation :

 -O,  --output-document=FILE    write documents to FILE.


 
Edit: Zut, validé le message avec du retard :o


Message édité par _lael_ le 21-12-2015 à 12:09:24
Reply

Marsh Posté le 21-12-2015 à 12:17:31    

:o
merci


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

Marsh Posté le 21-12-2015 à 12:23:06    

Je vais donc être obligé de les renommer après récupération. A enchainer dans le script. Tant pis. Vaut mieux limiter la bande passante avec le -N


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

Marsh Posté le 21-12-2015 à 12:36:22    

Tu peux le faire avec curl sinon:
 
curl http://127.0.0.1/test.png -z test.png -o test.png --location --remote-time --silent
 
En mettant une date plus ancienne sur le fichier avec "touch -d 20010101 test.png" ça le rétélécharge bien
Et en en mettant une plus récente avec "touch -d 20151221 test.png" ça le retélécharge pas. Idem si la date est identique via le --remote-time


Message édité par _lael_ le 21-12-2015 à 12:38:36
Reply

Marsh Posté le 21-12-2015 à 12:40:08    

Merci.
 
Les images sources sont mises à jour toutes les minutes, 5m ou x heures en fonction de l'image.
 
Je n'ai pas compris le fonctionnement de touch, mais je vais tester/chercher.
 
Merci :)


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

Marsh Posté le 21-12-2015 à 12:46:35    

touch c'est juste pour modifier la date du fichier pour valider qu'il était bien écrasé si plus ancien et conservé si plus récent


Message édité par _lael_ le 21-12-2015 à 12:56:35
Reply

Marsh Posté le 21-12-2015 à 12:58:24    

Mais la valeur que tu rentres (dans l'exemple de mon script qui tournera tout seul), elle ne changera pas, au bout de 5m ça ne sera plus valide pour les essais suivants ? (j'ai bien dit que je n'ai pas (encore) pigé)


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

Marsh Posté le 21-12-2015 à 12:58:24   

Reply

Marsh Posté le 21-12-2015 à 13:08:31    

oublie le passage parlant de "touch" à ce compte-là, c'était juste pour tester.
 
Juste la commande curl t'intéresse :)
 
curl http://127.0.0.1/test.png -z test.png -o test.png --location --remote-time --silent  
 
-z : permet de comparer la date du fichier distant avec le fichier spécifié
-o : où écrire le fichier téléchargé s'il est plus récent que le fichier spécifié via -z
--remote-time : écrire le fichier spécifié dans -o avec la date du fichier distant

Reply

Marsh Posté le 21-12-2015 à 13:16:32    

Merci BEAUCOUP ! J'essaie dans l'heure et te tiens au courant


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

Marsh Posté le 21-12-2015 à 13:35:14    

Parfait !  [:groody:1]  
 
Merci.
Y a plus qu'à créer le script et le programmer.
 
 [:plat00n]


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

Marsh Posté le 21-12-2015 à 13:47:07    

Mmmm, si t'as encore un peu de temps... :o
 
Certaines des images sont des cartographies. J'aimerai enregistrer certaines dans un sous dossier ("animation" ) et les dater quand elles sont mises à jour, ce qui me permettra des les utiliser pour générer une animation.  
 
J'ai regardé dans un manuel en ligne de CURL mais n'ai rien trouvé (ou alors je l'ai mal compris).
T'aurais une méthode ?


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

Marsh Posté le 21-12-2015 à 16:04:25    

ben tu fais un timestampage à la volée
 


[ -d animation-$(date +%Y-%m-%d) ] || mkdir $(date +%Y-%m-%d)
curl ....... -o animation-$(date +%Y-%m-%d)/img-$(date +%Y-%m-%d_%H:%M)


 
et tu auras le dossier créé si besoin, avec un par jour + un timestamp à la minute sur chaque fichier


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 21-12-2015 à 17:40:20    

Alors avant de reprendre ta proposition, la suite de la synchro :
 
Certaines images sont grosses (2-3 Mo) et le débit du serveur distant est pas super rapide. Donc au lieu d'écraser le fichier en cours et attendre qu'il se télécharge en entier (posant des problèmes d'affichage côté Web, surtout avec la périodicité courte des synchro), j'ai copié vers fichiers vers "nom-de-fichier-TEMP.png" puis une fois copié j'ai fait un :
mv nom-de-fichier-TEMP.png nom-de-fichier.png
 
 
Black-lord, je regarde comment je peux exploiter ta proposition, et je reviens. Merci


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

Marsh Posté le 21-12-2015 à 17:56:42    

Je n'arrive à rien, ça foire.
 
Comment fais tu avec cet exemple d'URL ?
 
curl "http://serveur-distant.com/image-a-recup.png" -z ~/www.monsite.com/www/datas/Copie-Image.png -o ~/www.monsite.com/www/datas/Copie-Image.png-TEMP.png --location --remote-time


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

Marsh Posté le 22-12-2015 à 05:47:48    

je ne vais pas te donner de solution toute faite, mais te donner une piste vers la solution.
 
regarde la commande mktemp, ça te permettra de gerer tes fichiers temporaires.
 
A noter que si ton probleme est le debit, tu risques d'accumuler le retard...


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 22-12-2015 à 10:50:30    

Les images ont largement le temps d'être récupérées entre 2 MAJ des sources. De toute façon, je synchronise toutes les 2, 5 et 30m en fonction de la source.


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

Marsh Posté le 22-12-2015 à 13:01:49    

Je n'ai pas de prb de fichier temp, avec CURL + le MV après tout va bien.
 
 
J'aimerai pour certaines images, avoir une autre copie dans un dossier spécifique avec une date et heure, ce qui me permet ensuite de les assembler pour créer une vidéo, mais seulement pour les nouvelles images, les modifiées.
Par exemple Image01-20151222.1350.png
 
Et j'ai donc tenté hier avec ton 1er message, mais curl ne veut rien savoir. Tu as mis un -d qui, dans la doc que j'ai trouvé, permet de poster des données lors de la requete.  
 
Le -o que j'utilise déjà ne correspond pas à l'ajout de date.


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

Marsh Posté le 22-12-2015 à 13:50:08    

black_lord t'a donné la réponse à ta question dans un de ses précédents messages, tu peux utiliser date en faisant varier les variables à % (cf man) pour avoir la date/heure dans le nom du fichier


Message édité par _lael_ le 22-12-2015 à 13:51:27
Reply

Marsh Posté le 22-12-2015 à 14:38:40    

Justement, comme je l'explique audessus, je n'y arrive pas, soit il y a une faute dans l'exemple, soit je m'y prends mal.
Et je ne retrouve aucune notion de gestion de date dans le manuel


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

Marsh Posté le 22-12-2015 à 15:56:02    

Il ne faut pas chercher dans le manuel de curl, tu dois faire appel au binaire "date" et l'insérer dans ta ligne de commande.
 
Pour reprendre son exemple, dans ton terminal fait:
date +%Y-%m-%d_%H:%M
que tu peux réutiliser sous la forme
$(date +%Y-%m-%d_%H:%M) ou `date +%Y-%m-%d_%H:%M`
dans une autre commande:
echo img-$(date +%Y-%m-%d_%H:%M)
 
et également dans ta commande curl:
curl ... -o img-$(date +%Y-%m-%d_%H:%M).png
 
Après tu peux modifier comme tu l'entends les % en te basant sur le manuel de date

Reply

Marsh Posté le 22-12-2015 à 17:59:50    

merci beaucoup !
Je teste ça tout à l'heure.
 
Re-merci :]


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

Marsh Posté le 22-12-2015 à 21:23:29    

Perfect, j'arrive à créer mon dossier, copier, etc.
 
Messieurs, merci pour le coup de main ! :jap:


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

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed