我正在尝试使用 wget 镜像网站,但我不想下载大量文件,因此我使用 wget 的--reject选项不保存所有文件。但是,如果 wget 与我的拒绝选项匹配,wget 仍会下载所有文件,然后删除该文件。
如果某些链接与某些 shell 通配符匹配,是否有某种方法可以告诉 wget 不要遵循某些链接?如果 wget 不能做到这一点,是否还有其他一些常见的 linux 命令可以做到这一点?
我无法让 wget 使用客户端证书。该文档谈到了使用 --certificate 标志。
证书标志的使用是明确的,我将其设置为使用客户端证书的PEM版本。
但是当我连接时,出现以下错误:
HTTP request sent, awaiting response... Read error (error:14094410:SSL routines:
SSL3_READ_BYTES:sslv3 alert handshake failure; error:140940E5:SSL routines:SSL3_
READ_BYTES:ssl handshake failure) in headers.
Giving up.
Run Code Online (Sandbox Code Playgroud)
ssl 握手失败意味着客户端没有提供正确的客户端证书。仍然是我使用的客户端证书,可以在浏览器中使用。
注意:当我在服务器上禁用客户端身份验证时,wget 可以连接。注意:建议使用 curl,但我想避免切换。
我确实为 VMWare (Ubuntu 9.10)下载了RubyStack 2.0.3,但我无法在上面下载任何东西!似乎所有基本实用程序都丢失/搞砸了:
bitnami@linux:/var/tmp$ wget
-bash: wget: command not found
bitnami@linux:/var/tmp$ curl
curl: error while loading shared libraries: libcurl.so.4: cannot open shared obj
ect file: No such file or directory
bitnami@linux:/var/tmp$ man wget
-bash: man: command not found
bitnami@linux:/var/tmp$ sudo apt-get install wget
[sudo] password for bitnami:
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Couldn’t find package wget
Run Code Online (Sandbox Code Playgroud)
任何想法如何在这台机器上下载任何东西?(我没有物理访问它)
更新
你一定是在逗我...
bitnami@linux:~$ ftp
-bash: ftp: command not found
bitnami@linux:~$ …Run Code Online (Sandbox Code Playgroud) 一个月前,我使用“ wget --mirror ”创建了我们公共网站的镜像,以便在即将到来的计划维护窗口期间临时使用。我们的主要网站运行 HTML、PHP 和 MySQL,但镜像只需要纯 HTML,不需要动态内容、PHP 或数据库。
以下命令将为我们的网站创建一个简单的在线镜像:
wget --mirror http://www.example.org/
Run Code Online (Sandbox Code Playgroud)
请注意,Wget 手册说--mirror“目前相当于-r -N -l inf --no-remove-listing”(人类可读的等价物是`--recursive --timestamping --level=inf --no-remove-listing。
现在一个月过去了,网站的大部分内容都发生了变化。我希望 wget 检查所有页面,并下载任何已更改的页面。但是,这不起作用。
我的问题:
除了删除目录并重新运行镜像之外,我需要做什么来刷新网站的镜像?
http://www.example.org/index.html上的顶级文件没有改变,但有许多其他文件已经改变。
我以为我需要做的就是重新运行wget --mirror,因为--mirror暗示标志--recursive“指定递归下载”和--timestamping“除非比本地新,否则不要重新检索文件”。我认为这会检查所有页面并且只检索比我的本地副本更新的文件。我错了吗?
但是, wget 不会在第二次尝试时递归该站点。'wget --mirror' 会检查http://www.example.org/index.html,注意这个页面没有变化,然后停止。
--2010-06-29 10:14:07-- http://www.example.org/
Resolving www.example.org (www.example.org)... 10.10.6.100
Connecting to www.example.org (www.example.org)|10.10.6.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Server file no newer …Run Code Online (Sandbox Code Playgroud) 我有用于在队列中下载大文件的脚本。现在我真的很感激,如果我有一个像样的日志。指定-oor-a选项显然是为此特制的,但是在我编写这个“非常大的文件”时,正如联机帮助页所述,大小不再是 50m,而是千兆字节。--progress=dot:mega仅为 3GB 文件生成 1000 行输出(显然它将是 3000*80 点('.'))。所以我想知道:有没有办法自定义进度样式设置,以便我可以真正使用日志功能?
在尝试将所有文件从一个 Web 服务器(“源”)传输到另一个(“目标”)时,wget 命令通过 FTP 进行连接,但无法在 PASV 命令之外继续进行。
我正在使用到“目标”服务器(共享主机上的 Linux 机器)的 SSH 连接来运行 wget 命令。
“源”服务器是微软服务器,我桌面上的FTP客户端没有问题。
这是我用来启动传输的命令:
wget -m ftp://username:'password'@sourceserver.com
Run Code Online (Sandbox Code Playgroud)
登录成功,然后发出这些命令:
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD not needed.
==> ... couldn't connect to xxx.xxx.xxx.xxx port 1128: Connection timed out
Retrying.
Run Code Online (Sandbox Code Playgroud)
由于“无法连接”错误,每次重试时,它都会尝试不同的端口号(不是 21,它已经成功连接到)。我第一次记录错误时,它尝试了 487X 范围内的端口。
我不知道问题是在 Microsoft(“源”)服务器端还是在 Linux(“客户端”)端。
想法?
使用wget命令,无论我调用多少次,我如何允许/指示每次覆盖我的本地文件。
假设,我想从以下位置下载文件:http://server/folder/file1.html
在这里,无论何时我说wget http://server/folder/file1.html,我都希望它file1.html在我的本地系统中被覆盖,而不管它何时更改、已经下载等。我的意图/用例是,当我调用 wget 时,我非常确定我想要替换/覆盖现有文件。
我已经尝试了以下选项,但每个选项都用于/用于其他目的。
当我运行curl命令行
curl "https://example.com"
Run Code Online (Sandbox Code Playgroud)
它立即成功,返回请求的结果。
当我运行相同的 wget 命令时
wget https://example.com
Run Code Online (Sandbox Code Playgroud)
它最终因“无法建立 SSL 连接”而超时。没有任何具体的错误信息。它可以连接,但无法进行 SSL 握手。我试过了,--no-check-certificate但这没有什么区别 - 它似乎与超时有关。
然而:
wget http://example.com
Run Code Online (Sandbox Code Playgroud)
工作正常(HTTP 与 HTTPS)。
这也影响了PHP 的“ file()”方法调用。
我的问题是,什么会导致 curl 成功检索页面(对于我们域中的所有站点)而不是 wget 或 php 解释器?这是周末的新问题,服务器之前很好。
(操作系统为 Red Hat Enterprise Linux 6.4)
我的 Windows 系统中安装了 Cygwin。我正在尝试wget为网站执行命令,但收到以下错误消息:
ERROR: The certificate of `example.com' is not trusted.
ERROR: The certificate of `example.com' hasn't got a known issuer.
Run Code Online (Sandbox Code Playgroud)
如何解决此问题 - 以便我可以继续进行。
我有一个 38GB 的“Moodle”tar 文件,需要从旧服务器(共享主机)传输,我们可以将其称为“服务器 A”到新服务器(专用虚拟)或“服务器 B”。如果有帮助,我在 Mediatemple。
我已经将目录压缩并使用 wget 通过 SSH 将其传输到服务器 B,但是 - 这是一个微不足道的 100GB 包,而且我的磁盘容量为 96% - 这意味着我无法在服务器 B 上解压缩文件!有什么方法可以将这个巨大的文件从服务器 A 传输到服务器 B,同时保留权限并尽量减少文件损坏的可能性,这不会使我达到磁盘限制吗?
虽然到目前为止我已经花了很长时间做这件事,但如果有人能提供更好的主意,我愿意放弃我原来的计划——我将不胜感激!