Je voulais sauvegarder tous mes files .vcf depuis mon server carddav (ownCloud). Le script est très simple et est le suivant:
$ wget -Avcf -r -np -l0 --no-check-certificatee -e robots=off --user=user \ --password='password' https://cloud.domain.com/foo/carddav
Le nombre total de files .vcf est d'environ 400, après avoir téléchargé environ 70 d'entre eux, wget renvoie cette erreur:
URL originale: http://oi40.tinypic.com/2ch9itt.jpg
Ce qui tue le process parce que le système est "épuisé". Le système est une machine virtuelle Debian Wheezy, hébergée sur Windows 7. J'ai essayé d'augmenter la RAM à 1024 Mo au lieu des 128 Mo actuels, mais le problème existe toujours.
Des suggestions sur la façon de contourner ce problème ou sur d'autres moyens d'y parvenir?
Il semble que les loops wget
provoquent un débordement de memory .
La première suggestion naturelle est d'augmenter à nouveau la memory de votre instance de nuage de 1 Go à 2 Go. Cela a résolu un problème similaire récemment.
Si cela n'est pas possible ou ne résout pas le problème, la seconde solution consiste à exécuter wget
en 2 étapes:
Récupérer la list des files. Comme je le vois dans votre capture d'écran, les files se trouvent dans le directory cloud.some_domain.com/remote.php/carddav/addressbooks/your_name/
.
Alors, exécutez wget
pour get l'index du directory:
wget https://cloud.some_domain.com/remote.php/carddav/addressbooks/your_name/
Cela vous donnera un file index.html
.
Maintenant, vous pouvez l'parsingr pour récupérer les noms de files à download:
grep ".vcf" index.html | awk -F"href=" '{print $2}' | awk -F\" '{print $2}' > ALL_VCF_FILES.lst for elt in `cat ALL_VCF_FILES.lst` do wget https://cloud.some_domain.com/remote.php/carddav/addressbooks/your_name/$elt done rm ALL_VCF_FILES.lst index.html