我的客户抱怨互联网速度低。使用 Speedtest.net 测量时,速度是可以接受的。定期测量的下载量为标称速度的 10% 到 30%。我无法解释。
一些背景。有问题的连接位于那些阳光明媚的加勒比岛屿之一,在那里快速互联网并不是最大的资产。最近互联网速度变得不错,高达 200 Mbps。但是到(比如说)阿姆斯特丹的 ping 往返大约需要 180 毫秒。
客户拥有 100 Mbps 光纤连接。在 Windows 机器 (speedtest.net) 上对 ISP CO 进行速度测试时,我们获得了 95 Mbps。当对阿姆斯特丹使用相同的速度测试时,我们达到了 60-70 Mbs。完全可以接受。
前段时间我安装了一个 RasPi,它会定期从我在阿姆斯特丹的一台服务器上获取一个文件。在直接连接到 AMS-IX 的数据中心中。使用这个命令:
wget -O /dev/null --report-speed=bits http://aserv.example.net/~myuser/links/M77232917.txt
Run Code Online (Sandbox Code Playgroud)
.txt 文件是 23MByte 的数字。(实际上是第一个但最大的梅森素数,23e6位数)
当我在有问题的网络上下载该文件时,wget 报告如下:
dev/null 100%[====================================================================>] 22.81M 11.6Mb/s in 17s
2019-02-08 14:27:55 (11.2 Mb/s) - ‘/dev/null’ saved [23923322/23923322]
Run Code Online (Sandbox Code Playgroud)
与此同时,speedtest.net 报告了 60-70 Mbps。
我知道 Raspi 有其局限性。但是这个速度变化很大。一次 RasPi 报告此为 11 Mbps,下一次为 22 Mbps。但有时低至 1.5 Mbps。
当我用一台功能强大的笔记本电脑进行这项测试时,最高速度稍高(高达 30 Mbps),但也显示出相同的低点。因此,它表示高侧的 RasPi 限制,而不是低侧的 10 Mbps。
我从德国慕尼黑数据中心的服务器发出了完全相同的命令。速度 …
我希望每天两次从服务器上的 PHP 脚本中获取内容,更改查询变量lang以设置我们想要的语言,并将此内容保存在两个特定于语言的文件中。这是我的 crontab:
*/15 * * * * ~root/apache.sh > /var/log/checkapache.log
10 0 * * * wget -O /path/to/file-sv.sql "http://mydomain.com/path/?lang=sv"
11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en"
Run Code Online (Sandbox Code Playgroud)
问题是只有第一个 wget 命令行正在执行(或者准确地说:正在写入的唯一文件是/path/to/file-sv.sql)。如果我切换第二行和第三行,/path/to/file-en.sql则会被写入。第一行总是按预期运行,无论它在哪里。
然后我尝试使用lynx -dump "http://mydomain.com/path/?lang=xx" > /path/to/file-xx.sql无济于事; 仍然只有第一行执行成功。即使混合 wget 和 lynx 也没有改变这一点!
有点绝望了!我错过了什么吗?关于 crontab(结合)wget 或 lynx 的文章数以千计,但似乎都涵盖了基本的设置和语法。有没有人知道我做错了什么?
谢谢,
亚历山大
从我的一台服务器到单个特定 url 的 wget 不断超时。此框中的所有其他网址都可以正常工作。这个网址在我拥有的任何其他盒子上都可以正常工作。这是输出:
wget -T 10 http://www.fcc-fac.ca
--2011-07-14 14:44:29-- http://www.fcc-fac.ca/
Resolving www.fcc-fac.ca... 65.87.238.35, 207.195.108.140
Connecting to www.fcc-fac.ca|65.87.238.35|:80... failed: Connection timed out.
Connecting to www.fcc-fac.ca|207.195.108.140|:80... failed: Connection timed out
Run Code Online (Sandbox Code Playgroud)
你能告诉我什么可能是错误的,我该如何解决它?我使用的是 Ubuntu 11.04 (GNU/Linux 2.6.38-8-server x86_64)
非常感谢您并原谅我的小白无知:)
ping、telnet、nc www.fcc-fac.ca 80 - 全部挂起。但是,其他一些 url 很容易 wget'able,尽管只有它们的一些主机可以 ping 通。
traceroute 并没有告诉我太多:
7 rx0nr-access-communications.wp.bigpipeinc.com (66.244.208.10) 148.834 ms 149.018 ms 148.940 ms
8 sw-1-research.accesscomm.ca (24.72.3.9) 158.901 ms 159.805 ms 160.162 ms
9 65.87.238.126 (65.87.238.126) 150.069 ms 148.861 ms 148.846 ms
10 * …Run Code Online (Sandbox Code Playgroud) 我在运行 Debian 5.0 的同一个子网上有 2 台机器。它们使用相同的 DNS (/etc/resolv.conf),它们路由到相同的网关 (#route) 并且它们具有相同的 iptables 设置 (#iptables -L)。我可以从它们两个 ping 到 IP 地址和主机名。我可以运行 #host www.google.com 并在两者上获得相同的结果。但问题是,在其中之一上,我无法 wget 或 curl。
所以在机器 1 上一切正常,但在机器 2 上(与机器 1 具有相同的设置)我无法 wget 或 curl。
我得到的错误是:
# wget google.com
--2009-10-20 16:38:36-- http://google.com/
Resolving google.com... failed: Name or service not known.
wget: unable to resolve host address `google.com'
Run Code Online (Sandbox Code Playgroud)
但是在机器 1 上,wget 或 curl 没有问题并返回:
# wget google.com
--2009-10-20 16:43:55-- http://google.com/
Resolving google.com... 74.125.53.100, 74.125.45.100, 74.125.67.100
Connecting to google.com|74.125.53.100|:80... connected.
HTTP request sent, …Run Code Online (Sandbox Code Playgroud) 我想从 FTP 下载一个目录,其中包含一些源代码。最初,我是这样做的:
wget -r ftp://path/to/src
Run Code Online (Sandbox Code Playgroud)
不幸的是,目录本身是 SVN 检出的结果,因此有很多 .svn 目录,爬取它们需要更长的时间。是否可以排除那些 .svn 目录?
我正在使用 wget 将一些文件从一台服务器镜像到另一台服务器。我正在使用以下命令:
wget -x -N -i http://domain.com/filelist.txt
Run Code Online (Sandbox Code Playgroud)
-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 Length: 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 Length: 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% …
我在 Windows 7 机器上运行 Windows 版本的 wget 时遇到问题。当我运行命令时,我收到此错误:
程序无法启动,因为您的计算机缺少 libintl3.dll。尝试重新安装程序以解决此问题。
有没有安全的地方可以下载和注册这个 DLL?我认为在搜索此文件时看到的任何 Google 结果都不安全。
我想使用 cURL将输出uptime和df命令发送到网络应用程序。我试过:
uptime | curl http://someurl.com -T -
Run Code Online (Sandbox Code Playgroud)
但这似乎没有发送数据。
将命令的输出作为 POST 参数发送到 cURL 的正确方法是什么?(或者 wget 如果这更容易)
我正在尝试将 (.html) 文件从 Windows XP Professional 共享文件夹复制到运行 Ubuntu Linux 10.04 LTS 的服务器上。
由于它是共享文件夹,通常的“wget”似乎不起作用。我怀疑我完全使用了错误的地址样式。
我试过了:
我想知道这是否可能,如果可能,有人能给我一些指示吗?
我已成功从 Ubuntu ping Windows 框:
# ping 192.168.1.66
PING 192.168.1.66 (192.168.1.66) 56(84) bytes of data.
64 bytes from 192.168.1.66: icmp_seq=1 ttl=128 time=0.412 ms
64 bytes from 192.168.1.66: icmp_seq=1 ttl=128 time=0.557 ms (DUP!)
64 bytes from 192.168.1.66: icmp_seq=2 ttl=128 time=0.243 ms
64 bytes from 192.168.1.66: icmp_seq=3 ttl=128 time=0.251 ms
64 bytes from 192.168.1.66: icmp_seq=4 ttl=128 time=0.266 ms
Run Code Online (Sandbox Code Playgroud)
我可以从网络上的所有其他计算机访问 Windows 共享,但是,它们也都运行 Windows …
我想使用 wget 下载整个网站,但我不希望 wget 下载图像、视频等。
我试过
wget -bqre robots=off -A.html example.com –user-agent=”Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6?
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,它不会下载 .php 文件,而是下载静态的 .html 文件。
wget有解决这个问题的方法吗?