Articles of wget

为什么从ftp站点的wget有时创build一些空的文件,当它下载其余的文件没有问题?

我已经使用wget(1)下载了存储在FTP站点上的80,000多个图像文件,并且下载了大部分没有问题的文件,但是当我做了一个小的检查时(使用文件(1)),我只是意识到一些文件是空的!?! 我只是用这个命令: wget -r -nH –user YYY –password ZZZ ftp://XXXX 我本来希望ftp传输要么重试或/和最终失败。 这是ftp协议中的wget(1)和og中的错误吗? 我可以看到别人有同样的问题 !

允许从本地连接到HTTPS /端口443协议

我们最近设置了一个新的开发服务器,并且在尝试通过SoapClient实例连接API时遇到了问题。 我想我已经缩小了这个问题,因为新服务器无法使用HTTPS协议build立与网站的连接。 我们有服务器上的中间证书包。 mod_ssl被启用 OpenSSL已启用 当试图做一个安全连接的wget我得到以下错误: [root@x ~]# wget –http-user=xxxxx –http-passwd=xxxxx –no-check-certificate 'https://www.xxx.com/dev/aspapi/api.asmx?wsdl' –2014-01-23 11:22:26– https://www.xxx.com/dev/aspapi/api.asmx?wsdl Resolving www.xxx.com… xxx.xx.xxx.xx Connecting to www.xxx.com|xxx.xx.xxx.xx|:443… connected. Unable to establish SSL connection. [root@x ~]# 当从我们的一台生产服务器运行相同的wget ,响应如预期。 我错过了什么? 如上所示,请参阅下面的s_client的输出: 带有-debug选项的s_client openssl s_client -debug -connect www.xxx.com:443 CONNECTED(00000003) write to 0x1fa8690 [0x1fa9ed0] (263 bytes => 263 (0x107)) 0000 – 16 03 01 […]

为什么是一个wget到http://graph.facebook.com解决我的服务器的IP?

这绝对没有意义,我花了3个小时试图弄清楚这一点。 突然间,所有连接到Facebook的脚本停止工作,所以我试图这样做: root@s01 [~]# wget http://graph.facebook.com –2015-11-18 15:27:47– http://graph.facebook.com/ Resolving graph.facebook.com… MY.SERVERS.IP Connecting to graph.facebook.com|MY.SERVERS.IP|:80… connected. HTTP request sent, awaiting response… 200 OK Cookie coming from graph.facebook.com attempted to set domain to graph.facebook.com Length: unspecified [text/html] Saving to: `index.html.2' [ <=> ] 85,752 –.-K/s in 0s 2015-11-18 15:27:47 (397 MB/s) – `index.html.2' saved [85752] root@s01 […]

坐在FIN_WAIT_1的服务器套接字,而networking没有看到它的stream量

我们一直试图抓住一个奇怪的问题,我们可以在solaris 10上从Apache 2.2.19上find一个页面,并且一些请求的排列可靠地花费各种固定的时间来响应。 它看起来是基于TCP套接字的closures,从客户端上的tcpdump开始,我们通常会看到在填充TCP窗口的服务器与最后一次响应之间的暂停,以及最后一个数据块与FIN从服务器。 所以在networking上它只是挂起了HTTP响应的中间传输,但是服务器上的netstat在FIN_WAIT_1中显示了一个套接字。 我们不能在服务器上做一个tcpdump来澄清,但是在我们看来,操作系统已经把TCP对话交给了硬件,所以相信它已经开始四处closures了,但是NIC从来不放这个包,数据包(可能是1或2 @ 1500字节和400或其他)。 这就像我们可以绘制的一样清晰的图像,除了最近的一个testing,我们做了一个惊人的…一个64076字节的文件由apache提供 – 最后一个包的432ms延迟。 我们给文件添加了一个字符,这导致了一个额外的数据包被创build,53个字节也包含了FIN,而不是我们在略小的文件上看到的空的52字节FIN,延迟的那个文件。 这个额外的数据包的存在可靠地改变了FIN对话的发生,并使对话从几乎半秒到几毫秒。 最常见的是在调查的整个过程中,这个延迟时间为4.6秒,我们再次看到窗口大小在波动,SACK在需要的时候返回到Apache,但是最后一个窗口的时间已经满了,持续46秒,然后回到最后2或3kb的数据,以及Solaris认为它发送的FIN以前。 我们的tcpdumps在F5 BigIP上,所以有一个ASICstream量以及一个Cisco 6509(仅限L2),但是我们在相邻的Solaris机器上执行wget时看到的是相同的用户体验,所以不要不相信BigIP正在做的任何黑魔法。 但是这一切都混淆了窗口大小和MSS和喜欢的混淆,但如果这听起来很熟悉任何人,我们都耳朵!

wget是否可以检测远程重复文件(使用不同的名称)并只下载一个?

我正在recursion地检索dynamic网站内容。 不幸的是,文件可以从不同的dynamicurl获得。 例如,也许文件http://foo.bar/bla.php?q=xyz和http://foo.bar/bla.php?q=abc是完全相同的(他们有相同的校验和),但下载作为不同的文件。 有没有可能使wget检测到这样的事情,只下载其中之一? 另外:是否有可能使-k将链接转换为下载的链接,即使页面是指第二个链接? 谢谢!

启动脚本不会清除进程表

我有一个代理服务器,一切ok。 但是,我有一些问题和疑问。 第一:当我做“/etc/init.d/nginx停止”或“/etc/init.d/nginx restart”,我的configuration,它不会重新加载,所有的nginx进程不会被杀死。 我的脚本: case "$1" in start) echo Starting nginx cd /usr/local/nginx/ wget https://www.dropbox.com/s/qweqwrqwrqwraqwe/nginx.cfg?dl=0 -O nginx.cfg /usr/local/nginx/nginx /usr/local/nginx/nginx.cfg RETVAL=$? echo [ $RETVAL ] ;; stop) echo Stopping nginx if [ /usr/local/nginx/nginx.pid ]; then /bin/kill `cat /usr/local/nginx/nginx.pid` else /usr/bin/killall nginx fi RETVAL=$? echo [ $RETVAL ] ;; restart|reload) echo Reloading nginx if [ /usr/local/nginx/nginx.pid […]

如何设置http_proxy envvariables并让wget在login前透明地使用它(Debian)

通过设置环境variableshttp_proxy =“http:// proxy-server”,我可以透明地使用set http代理来调用像wget,curl等程序。 为了坚持到整个系统我已经添加到/ etc /环境的http_proxy。 我使用getty来运行包装/ bin / login的bash脚本。 这个脚本运行一个wget,我希望它透明地使用http代理。 问题是系统范围的http_proxy在login之前不存在。 我已经尝试在用户〜/ .profile上设置http_proxy,并使用sudo运行wget,希望用户的envvariables可以被使用,但是它不起作用: sudo -i -u user wget http://example.com # no proxy connection envvariables可用: sudo -i -u user echo \$http_proxy # prints http://proxy-server 但它就像wget没有提供。 我怎样才能在login之前运行wget,并使之透明地使用之前设置的http_proxy envvariables?

wget镜像,子域和目录和cookie

我有一个现在是“完整”的网页上的帐户(即我已经用完了所有分配的空间),我想做一个该网站的镜像。 wget似乎是使用的东西。 问题是我只想在这个目录http://user.domain.com/room/2324343/transcript/ (和子目录)中镜像谎言。 同时保存正确的样式表,JavaScript和CSS等存在于不同的目录。 还有上传的文件,链接到在transcript目录(在不同的目录)的页面内,我想下载/镜像(这些文件格式为.exe,.py,.png,.app(和还有很多))。 也有在这些页面上的不同服务器上的图像。 如果这些链接(有时是相对的,有时是绝对的(但是对于内部的东西),有时是外部的)正常工作,如果它们链接到已经下载(镜像)的东西,它们工作正常(没有互联网连接) ,但如果它们链接到外部或未被镜像的东西,则链接到外部网站。 基本上所以他们按预期工作。 另一个问题是,你必须login访问该网站。 可以用wget来实现这个还是有更好的办法? 无论如何,我怎么做到这一点? (我已经在stackoverflow.com/questions/2190115/wget-mirroring-subdomains-and-directories-and-cookies问这个问题,但build议我尝试在这里问)

对于同一个提取,wget具有不同的响应时间

任何想法,为什么一个抓取将快速获取文件(在这个例子中的大图),而另一个抓取将获取相同的文件慢? 在家看不到这个问题。 没有看到这个问题通过IP地址他们映射到192.xx.xx.xx. 只有当ip是一个公共ip时才会看到这个问题,正在经历内部公司networking。 任何想法都会有所帮助。 Resolving undisclosed_site… –17:59:05– http://undisclosed_site.com/LinkOne/195000.jpg => `195000.jpg' Resolving undisclosed_site.com… public_ip Connecting to undisclosed_site[public_ip]:80… connected. HTTP request sent, awaiting response… 200 OK Length: 2,154,765 [image/jpeg] 0K ………. ………. ………. ………. ………. 2% 96.90 KB/s 50K ………. ………. ………. ………. ………. 4% 246.31 KB/s 100K ………. ………. ………. ………. ………. 7% 641.03 KB/s […]

翻译网页从壳

我正在尝试使用shell脚本自动翻译网页。 这是有趣的部分: wget http://www.google.com/translate?langpair=en%7Ces&u=http%3A%2F%2Fasdf.com 即使在浏览器中使用此URL时,我也能得到“ERROR 403:Forbidden”(错误403:禁止)。 有人可以解释发生了什么事吗? 为什么谷歌禁止shell脚本的“翻译”用法? 他们是否监视用户代理或他们有另一种方式来告诉你是否是浏览器? 如果有人知道另一种方式来做到这一点(例如,如果有一个控制台非交互式的浏览器,可以获取该URL,也许有另一个在线翻译工具,我不知道),请让我知道。