我正在使用 wget 将一些文件从一台服务器镜像到另一台服务器。我使用以下命令:
wget -x -N -i http://domain.com/filelist.txt
-x = 因为我想保留目录结构
-N = 时间戳仅获取新文件
-i = 从外部文件下载文件列表,每行一个。
我正在测试的一个 326kb 的小文件就可以顺利下载。
但另一个 5gb 的只下载了 203mb 然后就停止了(总是 203mb 上下浮动几千字节)
显示的错误信息是:
无法写入“path/to/file.zip”
(我不确定为什么前后会有奇怪的字符。我在 Windows 中使用 Putty,这可能与它有关,也可能无关,所以我保留了它们。但我认为不是。)
完整响应如下:(我已经替换了路径,ip和域名)
--2012-08-31 12:41:19-- http://domain.com/filelist.txt解析 domain.com... MY_IP 连接到 domain.com|MY_IP|:80... 已连接。HTTP 请求已发送,正在等待响应... 200 OK 长度:161 [text/plain] 服务器文件不比本地文件“domain.com/filelist.txt”更新
--2012-08-31 12:41:19-- http://domain.com/path/to/file.zip连接到 domain.com|MY_IP|:80... 已连接。HTTP 请求已发送,正在等待响应... 200 OK 长度:5502192869 (5.1G) [application/zip] 大小不匹配(本地 213004288)-- 正在检索。
--2012-08-31 12:41:19-- http://domain.com/path/to/file.zip连接到 domain.com|MY_IP|:80... 已连接。HTTP 请求已发送,正在等待响应... 200 OK 长度:5502192869 (5.1G) [application/zip] 保存至:“domain.com/path/to/file.zip”
3% [====>
] 213,003,412 8.74M/s 24 秒内无法写入“domain.com/path/to/file.zip”
如果路径目录已经存在或者是动态创建的,这似乎没有任何区别。
有人知道它为什么停止以及我该如何修复它吗?
任何帮助都将不胜感激。
编辑:我也尝试过只执行 wget,不输入文件并重命名文件。这次它下载了 3gb 多一点,然后给出了相同的无法写入错误。
wget -x -N http://domain.com/path/to/file.zip -O files/bigfile.zip
答案1
如果磁盘空间不足,您将收到此错误。运行 df ,您将看到您正在写入的目录是否已达到 100%
答案2
这是 URL 过长的问题。我也遇到过这个问题。所以我使用了 bit.ly 并缩短了 URL。效果非常好!
答案3
我在这个命令上遇到了同样的错误:
sudo wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
问题出在第二个命令的 sudo 上,我使用以下方法解决了它:
sudo su
答案4
我刚刚在 wget 之后的管道后面-
添加了一个tar
我有
wget https://example.com/path/to/file.tar.gz -O -|tar -xzf -C /path/to/file
然后将其改为
wget https://example.com/path/to/file.tar.gz -O - | tar -xzvf - -C /path/to/file