gio*_*321 6 wget out-of-memory
我想从我的 carddav 服务器 (ownCloud) 备份我所有的 .vcf 文件。该脚本非常简单,如下所示:
$ wget -Avcf -r -np -l0 --no-check-certificate -e robots=off --user=user \
--password='password' https://cloud.domain.com/foo/carddav
Run Code Online (Sandbox Code Playgroud)
.vcf 文件总数约 400 个,下载约 70 个后,wget 返回此错误:
原文网址:http : //oi40.tinypic.com/2ch9itt.jpg
由于系统“内存不足”而终止进程。系统是Debian Wheezy 虚拟机,运行在Windows 7 上。我尝试将RAM 提高到1024MB 而不是实际的128MB,但问题仍然存在。
有关如何解决此问题或实现此目标的替代方法的任何建议?
看来wget
循环会导致内存溢出。
自然的第一个建议是将云实例的内存从 1Gb 再次增加到 2Gb。这最近解决了类似的问题。
如果这不可能或不能解决问题,则第二种解决方案是wget
在 2 个步骤内运行:
检索文件列表。正如我在您的屏幕截图中看到的,文件位于目录中cloud.some_domain.com/remote.php/carddav/addressbooks/your_name/
。
因此,运行wget
以获取目录索引:
wget https://cloud.some_domain.com/remote.php/carddav/addressbooks/your_name/
这将为您提供一个index.html
文件。
现在您可以解析它以检索要下载的文件名:
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
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
2669 次 |
最近记录: |